浅谈Redis如何实现一致性
目录
一分为二
Redis的一致性分两个方面,一是Redis和MySQL的一致性;另一个是Redis集群主从的一致性
Redis和MySQL的一致性
好比你有两盒益达,一盒放公司,另一盒放家。每次都抓一把去公司,但每天没吃完的糖有可能放回家里的盒子也可能放回公司的盒子。(就是不给别人吃哈~),这样就自然出现2盒糖数量不一致的情况。
解决方法是我们规定:
redis的数据来源于mysql,想更新数据要先更mysql再更新到redis中。如果出现redis和mysql数据不一致,redis先查mysql最新的值是多少,再同步到redis中。
Redis如何保证主从数据的一致性
Redis总是由主节点写入数据。每次从节点建立或主节点重新被选举,都会执行“全量复制”,Slave节点全量复制最新的Master所有数据。
Redis集群正常工作时,Slave会采用“增量复制”对每一次Master新执行的修改命令做同步