redis缓存和数据库一致问题
2021/10/30 2:10:00
本文主要是介绍redis缓存和数据库一致问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
缓存和数据库一致性
-
双写模式:写数据库后,写缓存
- 问题:并发时,2写进入,写完DB后都写缓存。有暂时的脏数据
- 问题:并发时,2写进入,写完DB后都写缓存。有暂时的脏数据
-
失效模式:写完数据库后,删缓存
-
问题:还没存入数据库呢,线程2又读到旧的DB了
- 解决:缓存设置过期时间,定期更新
- 解决:写数据写时,加分布式的读写锁。
缓存数据一致性-解决方案:
- 如果是用户纬度数据(订单数据、用户数据),这种并发几率非常小,不用考虑这个问题,缓存数据加上过期时间,每隔一段时间触发读的主动更新即可
- 如果是菜单,商品介绍等基础数据,也可以去使用canal订阅binlog的方式
- 缓存数据+过期时间也足够解决大部分业务对于缓存的要求。
- 通过加锁保证并发读写,写写的时候按顺序排好队。读读无所谓。所以适合使用读写锁。(业务不关心脏数据,允许临时脏数据可忽略);
总结:
- 我们能放入缓存的数据本就不应该是实时性、一致性要求超高的。所以缓存数据的时候加上过期时间,保证每天拿到当前最新数据即可。
- 我们不应该过度设计,增加系统的复杂性
- 遇到实时性、一致性要求高的数据,就应该查数据库,即使慢点。
这篇关于redis缓存和数据库一致问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识