zoukankan      html  css  js  c++  java
  • 缓存与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

  • 相关阅读:
    第7章例7-12
    第7章例7-11
    第7章例7-9
    第7章例7-8
    第7章例7-7
    第7章例7-6
    第7章例7-5
    第7章例7-4
    第7章例7-3
    第7章例7-2
  • 原文地址:https://www.cnblogs.com/ghj1976/p/3642490.html
Copyright © 2011-2022 走看看