• 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主从同步等相关知识,希望本文的分享对您有所帮助

一、解决主从复制问题

当使用Redis作为存储引擎的时候,并且使用Redis读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存快照,主机依然可以对外提供服务,但是作为读的从机,就无法提供对外服务了,如果数据量大,恢复的时间会相当的长。为了解决Redis主从Copy的问题,有如下两个解决方案:

主动复制
所谓主动复制,就是业务层双写多个Redis,避开Redis自带的主从复制。但是自己干同步,就会产生一致性问题,为了保证主从一致,需要加入一系列的验证机制。而且这样的做法,会降低系统性能。
修改源代码,支持增量同步
Redis写AOF文件,关闭Redis rewrite AOF文件功能,为了避免文件过大,可以自己实现文件分割功能。
在业务低峰时期,生成内存快照,并记录快照时刻AOF所在的点。
当从机重连的时候,从机发送同步命令给主机,主机收到命令后,把最新的快照文件发送给从机,从机从快照文件中恢复,并且获得了该快照对应的AOF点,从机将AOF点发送给主机,主机将AOF文件中该点之后的所有数据操作同步给从机,达到增量同步的效果。

二、解决扩容问题

Redis作者的思路是:Redis Presharding(http://oldblog.antirez.com/post/redis-presharding.html)

预算设定Redis instances数量,假设实例数量n,n = 机器数*单台机器redis实例数
后期扩展只需要将旧机器上的部分redis实例迁移到新的机器上,达到平滑扩容。
迁移步骤如下:

在新的机器上创建实例,并且每个实例设置为被迁移实例的从机。
主从复制完成之后,设置程序将新的实例作为主。
停止旧的实例
经过如上步骤之后,旧机器的内存就变大了,最后内存最大为每台机器一个Redis实例。

按作者文章中所说的,一个机器启动多个实例,其实并不会耗费太多资源,因为Redis够轻量,另外多个实例一个接一个的重写AOF文件或者生成内存快照,可以降低内存的占用,而不影响对外的服务。

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

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

  • Redis主从实现读写分离
  • Redis教程(九):主从复制配置实例
  • Redis主从复制问题和扩容问题的解决思路

相关文章

  • 2017-09-08redis命令大全
  • 2017-05-11详解redis是如何实现队列消息的ack
  • 2017-05-11Redis中实现查找某个值的范围
  • 2017-05-11详解用Redis实现Session功能
  • 2017-05-11Redis 中spark参数executor-cores引起的异常解决办法
  • 2017-05-11Redis教程(十三):管线详解
  • 2017-05-11redis实现简单队列
  • 2017-05-11Redis有序集合类型的常用命令小结
  • 2017-05-11Redis sort 排序命令详解
  • 2017-07-22Redis系列(三)--过期策略

文章分类

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

最近更新的内容

    • Redis服务器的启动过程分析
    • Redis列表类型的常用命令小结
    • Redis2.8配置文件中文详解
    • Redis教程(十五):C语言连接操作代码实例
    • Redis教程(二):String数据类型
    • 浅谈Redis在分布式系统中的协调性运用
    • mac下设置redis开机启动方法步骤
    • 详解在Redis在Centos7上的安装部署
    • Redis总结笔记(二):C#连接Redis简单例子
    • 通过 Redis 实现 RPC 远程方法调用(支持多种编程语言)

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

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