缓存与DB数据一致性问题解决的几个思路

使用缓存必然会碰到缓存跟真实数据不一致的问题,虽然我们会在数据发生变化时通知缓存,但是这个延迟时间内必然会导致数据不一致,如何解决一般有下面几个思路:

首先,当这个延迟如果在业务上时可以接受的,比如文章阅读、评论次数这样的缓存数据,这样的问题这里不考虑。

 

类似数据库分布式事务的方式

可以采用类似数据库分布式事务的方式,当数据发生变化时,通知缓存和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

搜索此文相关文章:缓存与DB数据一致性问题解决的几个思路

 

此文链接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E8%AF%86%E5%BA%93/18683.shtml

 

转载请注明出处:缓存与DB数据一致性问题解决的几个思路 - 博客园

 

posted @ 2016-10-19 16:21  北漂小伙  阅读(241)  评论(0编辑  收藏  举报