解决缓存与数据库一致性问题
来源:互联网 发布:陕西干部网络培训网 编辑:程序博客网 时间:2024/05/01 04:32
1、引用缓存的好处
1)提高性能;2)减缓数据库压力;3)提高系统并发处理能力
2、引用缓存的问题
1)处理逻辑变得复杂;2)使用不当,容易引起缓存和数据库数据不一致的问题
3、数据不一致的原因
缓存操作与数据库操作不是原子操作,当一方操作成功、另一方操作失败时就会造成数据不一致问题
4、不同情况下常用处理方法
1)简单逻辑处理:与数据库简单的一次性交互,可根据数据库/缓存的操作结果,来判断缓存/数据库是否要执行相应操作,如图:
a、增:db-->cache:数据库插入成功,添加到缓存
b、删:cache-->db:先删缓存,在删数据库
c、改:db-->cache:先改数据库,在改缓存
d、查:cache-->db-->cache:先查缓存,没有则查库添加到缓存
2)复杂逻辑处理:一个service中有多次数据库交互,并且由于spring事务传播性不同有时只在最外层事务提交时提交(spring默认事务传播性)
a、增:db:只插入数据库
b、删:cache-->db:先删缓存,再删数据库
c、改:cache-->db:先删缓存,再删数据库
d、查:cache-->db-->cache:先查缓存,没有则查库添加到缓存
注:
1)还可以通过设置标志位,在外层回滚缓存的做法,由于该方法会使缓存操作与业务操作耦合性过大,此处不做介绍;
2)如上操作cache与db的理由,未详细解释,如有需要可回复评论探讨;
3)该篇博文主要用于讨论解决数据库与缓存不一致问题,对于高并发下造成的线程安全问题,后续讨论。。。
0 0
- 解决缓存与数据库一致性问题
- 缓存与数据库一致性
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与数据库一致性保证
- 缓存与db一致性问题
- 多处理器与缓存一致性问题
- redis学习笔记(四)redis缓存与数据库一致性问题
- 数据库备份 一致性问题
- 数据库完整性与一致性
- 分布式数据库一致性解决初步
- Java过滤器,拦截器,监听器对比
- python GUI程序编译报错
- 良好的研发团队文化是怎样「长」成的?一句成功的十四字真言!
- 手把手教你使用在线中文字体库
- java.net.UnknownHostException: localhsot
- 解决缓存与数据库一致性问题
- Xdebug PHP 在IIS服务器安装不成功原因
- @postconstruct执行两次问题
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- 优化Web中的性能
- El Capitan/Serial on the Intel Skylake NUC
- 方差-偏置分析
- Oracle删除数据表和视图存储过程
- linux里mnt下无hgfs文件夹