缓存与DB数据一致性问题解决的几个思路
2014-04-03 11:10
218 查看
使用缓存必然会碰到缓存跟真实数据不一致的问题,虽然我们会在数据发生变化时通知缓存,但是这个延迟时间内必然会导致数据不一致,如何解决一般有下面几个思路:
首先,当这个延迟如果在业务上时可以接受的,比如文章阅读、评论次数这样的缓存数据,这样的问题这里不考虑。
参考:
http://coolshell.cn/articles/10910.html
参考:
Web应用的缓存设计模式
http://robbinfan.com/blog/38/orm-cache-sumup
参考资料:
cache一致性问题
http://blog.csdn.net/jackoo/article/details/3936070
首先,当这个延迟如果在业务上时可以接受的,比如文章阅读、评论次数这样的缓存数据,这样的问题这里不考虑。
类似数据库分布式事务的方式
可以采用类似数据库分布式事务的方式,当数据发生变化时,通知缓存和DB,缓存和DB均用乐观锁实现事务。典型的通知可以用MQ(消息队列)。参考:
http://coolshell.cn/articles/10910.html
巧用缓存主键
当缓存过期时,缓存的主键发生变化,比如:文章的缓存,我们主键用文章ID+文章最后更新时间。一旦文章发生变化,获取缓存的主键也发生变化,自然就确保每次更新后,缓存取得是最新的数据。参考:
Web应用的缓存设计模式
http://robbinfan.com/blog/38/orm-cache-sumup
参考资料:
cache一致性问题
http://blog.csdn.net/jackoo/article/details/3936070
相关文章推荐
- 此博文目录有几个解决问题的思路可以借鉴
- Spark on Yarn遇到的几个问题及解决思路
- IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- jquery 缓存问题的几个解决方法
- 内核态尝试缓存handle(file object)遇到的问题及解决思路
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- 缓存失效,导致高并发穿透DB的几种解决思路
- IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法
- 制作web安装文件时遇到的几个小问题及其解决思路(续一)
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- 解决关系数据库的性能问题的几个思路
- jquery 缓存问题的几个解决方法
- 缓存击穿问题解决思路
- 制作web安装文件时遇到的几个小问题及其解决思路
- 制作Web安装文件时遇到的几个小问题及其解决思路
- 性能测试常见问题解决思路
- 再谈缓存的穿透、数据一致性和最终一致性问题
- 共享文档 没有权限访问该资源 的棘手问题解决思路