缓存更新策略

redis的缓存更新策略:

  • 先删除缓存,在更新数据库,缺点:当线程1进行一个更新的操作,先进行缓存删除,在修改数据库,但是修改数据库之前,线程2 进行查询缓存的操作,未命中,查找数据库,写入缓存,线程1修改完成后,但是此时缓存中的数据还是旧数据,会出现数据不一致问题,只有等这个缓存过期,下次查询时,才会获取正确的信息.
  • 先操作数据库,在删除缓存,这个方法显然比上一个更优

缓存更新策略的最佳实践方案:

1,低一致性需求:使用Redis自带的内存淘汰机制

  1. 高一致性需求:主动更新,并以超时剔除作为兜底方案
  • 读操作: 缓存命中则直接返回 缓存未命中则查询数据库,并写入缓存,设定超时时间
  • 写操作: 先写数据库,然后再删除缓存 要确保数据库与缓存操作的原子性
相关推荐
倒霉蛋小马2 小时前
【Redis】什么是缓存穿透?
缓存
千月落6 小时前
Redis数据迁移
数据库·redis·缓存
小编码上说7 小时前
LSH(局部敏感哈希)分桶,海量数据下的相似性搜索解决方案
java·spring boot·缓存·langchain4j·lsh·局部敏感哈希·ai调用优化
风筝在晴天搁浅7 小时前
LFU缓存
缓存
许彰午8 小时前
CacheSQL(五):桥接篇
java·数据库·缓存·系统架构
阿维的博客日记9 小时前
介绍一下Redisson的看门狗机制
java·redis·缓存
遇见~未来11 小时前
Token、输入输出与缓存——AI开发计费全解
人工智能·缓存
阿维的博客日记12 小时前
为什么会出现缓存删除失败的情况
缓存
阿维的博客日记12 小时前
Redis的旁路缓存策略和先删除缓存后更新数据库,先更新数据库后删除缓存,这三种策略之间有什么关系??
数据库·redis·缓存
风筝在晴天搁浅12 小时前
设置一个带超时时间的LRU缓存
缓存