缓存更新策略

redis的缓存更新策略:

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

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

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

  1. 高一致性需求:主动更新,并以超时剔除作为兜底方案
  • 读操作: 缓存命中则直接返回 缓存未命中则查询数据库,并写入缓存,设定超时时间
  • 写操作: 先写数据库,然后再删除缓存 要确保数据库与缓存操作的原子性
相关推荐
ok_hahaha3 小时前
java从头开始-黑马点评-商户查询缓存
java·spring·缓存
新缸中之脑4 小时前
Google TurboQuant 详解
数据库·redis·缓存
DJ斯特拉6 小时前
黑马点评技术汇总(五)缓存更新策略
缓存
XiYang-DING7 小时前
【Java SE】缓存池和常量池的区别
java·spring·缓存
爱敲代码的菜菜8 小时前
【Redis】Redis基本操作
java·数据库·redis·缓存·hash·zset
雾喔9 小时前
redis简单命令
数据库·redis·缓存
014-code9 小时前
如何使用 Redis实现一个简易消息队列?
数据库·redis·缓存·消息队列
Eine .9 小时前
Redis
数据库·redis·缓存
ywf121510 小时前
Nginx 缓存清理
运维·nginx·缓存
小江的记录本20 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存