回答
用于 Redis 主从复制是异步的,如果在复制过程中出现网络延迟、主从节点重启等其他时延原因都会导致主从数据不一致。一般解决主从数据不一致需要根据实际情况来分析,大明哥列几种方案。
一、直接忽略
任何脱离业务的架构设计都是耍流氓,绝大部分业务其实都可以接受一定时间数据不一致。如果你们业务原因接受,那么就直接不处理了,简单,省事。你去处理它,反而使得架构更加复杂。
二、强制读主
读写全部都在主节点,这样就不存在主从数据不一致的问题了,强一致性读写。虽然这样可以保证读取的数据是最新的,但是牺牲了读操作的并发能力。
三、优化读写分离策略
我们可以这样结合上面两种方案,对于非关键性的读操作,可以继续从从节点读取,因为非关键性功能是可以容易一段时间的不一致的。对于关键性的读操作,则直接从从主节点读取,保持强一致性读写。
四、从节点延迟监控