Redis主从+哨兵模式下数据安全

Redis主从+哨兵模式下数据安全

1,redis主从+哨兵

redis主从复制并不能实现高可用,因为万一主节点宕机,整个redis系统就会瘫痪。
利用sentinel监控主从节点的时候,假如主节点出现问题,sentinel可以进行故障转移,以及转移之后通知客户端程序。
但是sentinel故障转移有一定时间的延迟,并且主从复制是异步进行的。
所以sentinel只能保证主从切换,保证redis主从的高可用。并不能保证数据的零丢失。

嗯,说了这么多,就是想说sentinel可以保证redis主从的高可用,但是不能保证数据的零丢失。

2,redis主从+哨兵数据丢失原理

1,主从复制异步的导致数据丢失
       因为redis主从复制是异步的,假如主节点两个进程同时一个接受写命令,另一个进行复制。
    复制过程中突然宕机。那么有一些写命令还没有来得及复制就宕机了。那么这部分没来得及复制的
    数据就会永久丢失。

2,集群脑裂导致数据丢失
       脑裂,就是集群中master节点突然跟其他从节点以及sentinel的网络出现了卡顿,断网等网
    络问题。这种情况下sentinel会认为master节点宕机了,重新选出一个master节点。这时候集群
    中就有两个master节点。这就是脑裂。脑裂情况下,sentinel还没有返回新节点地址的时候,
    client会继续给旧的master写入数据。当网络恢复后,旧的主节点会被当作从节点复制新的
    主节点。那么脑裂期间写入旧master的数据就会永久丢失。

3,如何规避redis主从+哨兵导致的数据丢失

1这种数据丢失是无法避免的,只能通过不同的业务场景,不同的网络带宽设置不同的参数,把损失降到最低。

2配置项:
    min-slaves-to-write 3     --要求至少有3个slave的情况
    min-slaves-max-lag  10    --主从复制的延迟不能超过10s。超过的话,master节点不会接受任何写请求。

3上面配置项的意思就是:
         要求最少有三个从服务器连接,并且主从复制的延迟不能超过10s,则稳定运行。
     假如从服务器从节点数量小于三个,或者主从复制延迟超过10s,则主节点从此不接受任何写请求,直到故障恢复。

4避免数据丢失:
        根据上面配置结合业务拿到最优配置,在故障期间client可暂时将数据存在其他地方,等待故障恢复再将数据
    转移到redis即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值