由于redis的主从复制是异步操作的,由于异步的特性就天然的导致数据复制会产生不一致性。
例如:主服务器执行完写命令,在向从服务器发送相同命令的过程中出现故障挂掉了。所以从服务器会丢失了一部分写命令,导致数据出现不一致。
降低概率
redis从 2.8 版本引入了两个配置:
min-replicas-max-lag <seconds>
min-replicas-to-write <numbers>
主服务器只会在从服务器大于等于min-replicas-to-write的值,并且主从服务器最后一次的通讯间隔时间不超过min-replicas-max-lag的值才会执行写命令。
这两个选项也无法杜绝数据不一致的问题,但是会有效的降低因服务器的不稳定导致的数据不一致性。