如何保证缓存(redis)与数据库(MySQL)的一致性

  1. 云栖社区>
  2. 袋鼠云技术团队>
  3. 博客>
  4. 正文

如何保证缓存(redis)与数据库(MySQL)的一致性

dtstack太阳 2019-08-02 13:00:28 浏览976
展开阅读全文

【说明】
  对于热点数据(经常被查询,但不经常被修改的数据),我们可以将其放入redis缓存中,以增加查询效率,但需要保证从redis中读取的数据与数据库中存储的数据最终是一致的。本文基于“孤独烟”与“58沈剑”两位的文章,针对一致性的问题进行了汇总总结,两位的原文链接见文末。

【前言】

  客户端对数据库中的数据主要有两类操作,读(select)与写(DML)。针对放入redis中缓存的热点数据,当客户端想读取的数据在缓存中就直接返回数据,即命中缓存(cache hit),当读取的数据不在缓存内,就需要从数据库中将数据读入缓存,即未命中缓存(cache miss)。所以读操作并不会导致缓存与数据库中的数据不一致。
  对于写操作(DML),缓存与数据库中的内容都需要被修改,但两者的执行必定存在一个先后顺序,这可能会导致缓冲与数据库中的

网友评论

登录后评论
0/500
评论
dtstack太阳
+ 关注
所属云栖号: 袋鼠云技术团队