缓存更新策略

redis的缓存更新策略:

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

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

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

  1. 高一致性需求:主动更新,并以超时剔除作为兜底方案
  • 读操作: 缓存命中则直接返回 缓存未命中则查询数据库,并写入缓存,设定超时时间
  • 写操作: 先写数据库,然后再删除缓存 要确保数据库与缓存操作的原子性
相关推荐
qq_5470261792 小时前
Java 中的 Caffeine 缓存详解
java·开发语言·缓存
devilnumber4 小时前
Redis 使用过程中可能遇到的常见问题或 “坑”
数据库·redis·缓存
CDN3606 小时前
【踩坑实录】前端开发必看:一次由CSS缓存引发的线上事故与SEO反思
前端·css·缓存
Aray12347 小时前
Redis Cluster 集群选举机制
数据库·redis·缓存
ego.iblacat19 小时前
Redis 核心概念与部署
数据库·redis·缓存
苏渡苇21 小时前
5 分钟跑起 Redis(Docker 版)
数据库·redis·缓存·docker·redis入门
Jul1en_1 天前
【Redis】Zset类型、命令及应用场景
数据库·redis·缓存
杨凯凡1 天前
【014】基本类型与包装类:缓存、相等性、NPE
java·数据结构·缓存
weisian1511 天前
Java并发编程--33-Redis分布式缓存三大核心架构:主从、哨兵、分片,落地实战与选型
java·redis·缓存·主从架构·哨兵架构·分片架构
heimeiyingwang1 天前
【无标题】
网络·缓存·docker·性能优化·架构