• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Redis > 分割超大Redis数据库例子

分割超大Redis数据库例子

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了redis例子,redis是数据库吗,redis数据库下载,redis数据库使用,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
</div>

改成实际的模式,如
redis-cli KEYS "user:*:followers" | xargs redis-cli DEL
</div>

表示删除 user followers 数据。

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分割超大Redis数据库例子

相关文章

  • 2017-05-11在CentOS 7环境下安装Redis数据库详解
  • 2017-05-11Redis sort 排序命令详解
  • 2017-05-11Redis教程(十):持久化详解
  • 2017-05-11Linux下Redis安装配置教程
  • 2017-05-11Redis数据库的应用场景介绍
  • 2017-12-31更好地使用redis
  • 2017-05-11Redis服务器的启动过程分析
  • 2017-05-11phpredis提高消息队列的实时性方法(推荐)
  • 2017-05-11详谈redis优化配置和redis.conf说明(推荐)
  • 2017-05-11redis中使用java脚本实现分布式锁

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Redis String 类型和 Hash 类型学习笔记与总结
    • Redis有序集合类型的常用命令小结
    • Redis发布订阅和实现.NET客户端详解
    • 利用yum安装Redis的方法详解
    • Redis教程(二):String数据类型
    • 分割超大Redis数据库例子
    • Redis主从复制问题和扩容问题的解决思路
    • Redis教程(九):主从复制配置实例
    • 更好地使用redis
    • CentOS系统安装Redis及Redis的PHP扩展详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有