• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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文件或者生成内存快照,可以降低内存的占用,而不影响对外的服务。

    您可能感兴趣的文章:
    • 详解Redis主从复制实践
    • Redis持久化与主从复制的实践
    • 详解使用Docker进行Redis主从复制实践
    • Java使用Lettuce客户端在Redis在主从复制模式下命令执行的操作
    • 使用Docker搭建Redis主从复制的集群
    • redis主从复制原理的深入讲解
    • Redis主从复制详解
    • CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法
    • Redis教程(九):主从复制配置实例
    • 浅谈Redis主从复制以及主从复制原理
    上一篇:redis配置文件redis.conf中文版(基于2.4)
    下一篇:Redis数据库的安装配置方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Redis主从复制问题和扩容问题的解决思路 Redis,主从,复制,问题,和,