我的编程空间,编程开发者的网络收藏夹
学习永远不晚

分割超大Redis数据库例子

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

分割超大Redis数据库例子

薄荷 App 上的伙伴功能大量使用了内存数据库 Redis,随着数据量的快速增长,Redis 膨胀得很快,已经接近 12 GB规模,这些数据全部放在单个 Redis 实例中。单个巨大 Redis 实例有如下几个坏处:

1.首先,需要一台内存很大的机器。Redis 是内存数据库,它需要把所有需求全部放在内存中,需要为之装下 12 GB的 Redis 实例,至少需要 12 GB 内存大小的机器,考虑的预留增长空间,一般需要 12 * 1.5 约 18 GB 内存。 另外还有一个考虑的因素是,Redis 进行硬盘数据存储时,fork 进程需要消耗同样大小的内存,因此一个 12GB 的 redis 实例需要 32 GB左右的内存比较合适,这对机器提出了很高的要求,常常难以满足。

2.然后,Redis 容易成为性能瓶颈。Redis 的并发模型是单进程单线程,它不能充分利用多核 CPU,在请求数很高,或者某一些请求处理比较慢时(比如一些大的数据排序),可能会成为系统的性能瓶颈。有方法可以缓解甚至这个问题,就是建立多个 Redis 实例,通过多个 Redis 连接来实现。

3.另外,单个巨大的 Redis 实例也会增加数据管理难度,因为这么大的数据量,无论是复制,备份操作都比较慢,容易对线上系统造成冲击。

因此,十分有必要把单个巨大的 Redis 实例分割成多个小的 Redis 实例。

使用 Redis 的复制机制,可以在线平滑处理 Redis 实例分割,几乎不会对系统有很大的影响。

分割的具体操作思路如下:

1.首先,规划 Redis 分割策略,通常是基于业务划分,比如薄荷伙伴是基于业务分成 timeline, user_relationship, other 3个 Redis 实例。规划好之后,需要根据规划结果对应用程序中 Redis 程序代码做修改,通常是有一个统一的 Redis 链接修改为多个 Redis 连接,不同业务使用不同的连接。

2.然后,通过 Redis 复制功能建立多个 Redis 副本,让不同 Redis 连接使用不同的 Redis 副本,在 Redis 副本中删除多余的数据。批量删除某个模式的 keys,可以使用下面的 shell 命令:

redis-cli KEYS "<pattern>" | xargs redis-cli DEL

改成实际的模式,如

redis-cli KEYS "user:*:followers" | xargs redis-cli DEL

表示删除 user followers 数据。

最后通过来回切换并重启 Redis 实例达到完全分割 Redis 实例。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

分割超大Redis数据库例子

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

分割超大Redis数据库例子

薄荷 App 上的伙伴功能大量使用了内存数据库 Redis,随着数据量的快速增长,Redis 膨胀得很快,已经接近 12 GB规模,这些数据全部放在单个 Redis 实例中。单个巨大 Redis 实例有如下几个坏处: 1.首先,需要一台内存
2022-06-04

Redis-nosql数据库的四大分类

Redis-nosql数据库的四大分类原文地址:https://www.cnblogs.com/ibcdwx/p/13472428.html
Redis-nosql数据库的四大分类
2016-07-04

Redis内存数据库示例分析

Redis本身的内容比较复杂。如果你上来,你应该研究一个细节点,比如连接池和数据结构。虽然可以直接了解某一点的详细来源内容,甚至尽快解决一些意外,但是容易淹没在失眠的细节中,整体控制不了Redis
2022-12-19

Redis数据库分布式的示例分析

这篇文章给大家分享的是有关Redis数据库分布式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问题:1-2亿数据需要缓存,如何设计?1 哈希取余分区2亿条记录就是2亿个k,v,假设有3台机器构成一个集群
2023-06-28

《数据库垂直分割技巧大公开:拆分之道,各有千秋》

数据库垂直分割技巧是一门学问,其中包含了拆分之道和多种实现方法,掌握了这些技巧,可以有效地提高数据库的性能和可管理性。
《数据库垂直分割技巧大公开:拆分之道,各有千秋》
2024-02-12

《数据库垂直分割的成功案例:成功拆分,价值几何》

数据库垂直分割是一种常用的数据库设计技术,它可以将数据库中的数据按不同的业务功能或主题拆分成多个独立的数据库,从而提高数据库的性能、扩展性和安全性。本文将介绍一些数据库垂直分割的成功案例,并分析其带来的价值。
《数据库垂直分割的成功案例:成功拆分,价值几何》
2024-02-12

《数据库垂直分割的失败案例:拆分失败,痛定思痛》

数据库垂直分割是一种常用的优化技术,但操作不当很容易导致数据一致性问题。本文将通过一个真实的案例,展示垂直分割失败的后果,并给出相应的解决方案。
《数据库垂直分割的失败案例:拆分失败,痛定思痛》
2024-02-12

oracle数据库实例名区分大小写么

是的,oracle 实例名区分大小写。实例名必须遵循特定规则,包括以字母或下划线开头,可包含字母、数字和下划线,最多 128 个字符,区分大小写。在 windows 上,虽然实例名不区分大小写,但建议始终使用区分大小写的实例名,以保持一致性
oracle数据库实例名区分大小写么
2024-05-11

【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践

引言 随着用户的增长、业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍。其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈。 本文就以流水类的超大表,探讨基于SequoiaDB巨杉数据库存储
【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践
2016-04-25

阿里云数据库世界纪录超大规模分布式数据库的创新应用

近年来,随着科技的不断进步,大数据已经成为社会经济发展的重要驱动力。其中,数据库作为大数据处理的关键工具,其性能、规模和安全性成为了衡量其核心竞争力的重要标准。在这方面,阿里云数据库的表现一直备受瞩目。近期,阿里云数据库再次刷新了世界纪录,实现了超大规模分布式数据库的创新应用。一、阿里云数据库的世界纪录此次阿里云
阿里云数据库世界纪录超大规模分布式数据库的创新应用
2023-11-05

redis五大数据结构和使用场景的示例分析

这篇文章主要介绍redis五大数据结构和使用场景的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!老规矩,先抛结论后验证string:有点像java的hashMap,存的时候什么key,取的时候也什么key,常
2023-06-14

编程热搜

目录