Redis数据一致性解决方案

常见的方案

方案一:先写Mysql,再写Redis

并发读写的时候数据会不一致或者redis数据更新不到最新的数据。

方案二:先删除Redis,再写Mysql,再删除Redis

算是方案一的补救,不是好方法,两次redis操作,风险不可控。

方案三:先写Mysql,再删除Redis

并发读写的时候,可能会出现有一次数据不一致情况,(删除数据库,还没来及的删除reids的时候,从redis读取数据为旧数据)针对不强一致性的业务可以使用。向秒杀,或者库存服务是不能使用的。

方案四:先写Mysql,通过Binglog,异步更新Redis

能做到最终一致,但是实时性不好。常见比如灾备,数据汇总等等,常见是binlog + kafka。

推荐的方案

方案一:先写Mysql,再删除Redis

实时一致性方案,最多出现有一次数据不一致情况。

方案二:先写Mysql,通过Binglog,异步更新Redis

最终一致性方案,配合消息队列异步更新,实现数据最终一致。

About the Author: 一块自由的砖

码农一个,一块自由勤恳的砖,哪里需要哪里搬!( ̄▽ ̄)"