如何使用缓存 | 数据一致性

三种常见更新策略

  1. LRU/LRF/FIFO算法剔除 (Redis使用maxmemory-policy这个配置作为内存最大值后对于数据的剔除策略)
  2. 超时剔除
  3. 主动更新

使用建议:

  • 低一致性的业务配置最大内存和淘汰策略的方式
  • 高一致性的业务结合超时剔除和主动更新

数据库与缓存的一致性

1、推荐方式 - 先更新数据库,再删除缓存
出现脏数据的情况:
a.查询数据
b.缓存不存在
c.提交更新事务
d.删除缓存
e.回填缓存

后续读到的都是a步骤查询出来的脏数据,但是出现这种情况的条件要比下面的方式严苛得多。

2、如果是先删除缓存,那么会出现这种情况
在对缓存删除完之后(这时数据还没有更新),有一个读请求,这个时候由于缓存被删除所以直接会读库,读操作的数据是老的并且会被加载进入缓存当中,后续读请求全部访问的老数据。

3、缓存删除失败
如果缓存删除失败,缓存的数据就会和数据库的数据不一致,那么我们就只能靠过期超时来进行兜底。对此我们可以进行优化,如果删除失败的话 我们不能影响主流程那么我们可以将其放入队列后续进行异步删除。

posted @   NewQ  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示