Redis与数据库一致性补充
最近发现还有一种思路,在这里记录一下
介绍
之前我们的操作都是这样
- 读取操作先从缓存取数据,没有,则从数据库中取数据,成功后,放到缓存中
- 更新操作就是操作数据库和缓存
现在改成这样
- 读取操作先从缓存取数据,没有,则从数据库中取数据,成功后,不负责回写缓存
- 更新操作就是更新数据库,发送缓存刷新消息(也可以采用消费数据库Binlog的方式)
- 然后有一个独立模块去消费消息(消费数据库Binlog),异步完成缓存刷新
总结
这个方案,是实现最终一致性的解决方案,但是不能保证实时性,会比之前延时双删清晰简单一些
参考