缓存更新策略

缓存更新是Redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数据进行更新,或者淘汰。

1.缓存更新策略

1.1.内存淘汰

redis自动进行,当redis内存达到咱们设定的max-memery的时候,会自动触发淘汰机制,淘汰掉一些不重要的数据(可以自己设置策略方式)

1.2超时剔除

当我们给redis设置了过期时间TTL之后,redis会将超时的数据进行删除,方便咱们继续使用缓存

1.3.主动更新

我们可以手动调用方法把缓存删掉,通常用于解决缓存和数据库不一致问题

2.三种策略的区别

|------|-------------------------------------------------|-----------------------------------|------------------------|
| | 内存淘汰 | 超时剔除 | 主动更新 |
| 特点 | 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存。 | 给缓存数据添加TTL时间,到期后自动删除缓存。下次查询时更新缓存。 | 编写业务逻辑,在修改数据库的同时,更新缓存。 |
| 一致性 | 差 | 差 | 好 |
| 维护成本 | 无 | 低 | 高 |

2.1使用场景

**低一致性需求:**使用内存淘汰机制。例如店铺类型的查询缓存

**高一致性需求:**主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存

相关推荐
毕设源码-钟学长5 小时前
【开题答辩全过程】以 火车票订票系统为例,包含答辩的问题和答案
java
西门吹雪分身5 小时前
JUC之可重入锁
java·juc·死锁·公平锁·非公平锁
A懿轩A5 小时前
【Java 基础编程】Java 正则表达式实战:Pattern/Matcher、元字符与常用正则,验证与提取必备
java·开发语言·正则表达式
予枫的编程笔记5 小时前
【Kafka进阶篇】Spring Boot Kafka客户端踩坑记:自定义序列化器+ContainerFactory调优指南
java·spring boot·kafka·java21·并发消费·kafka客户端·自定义序列化器
黎雁·泠崖5 小时前
Java 集合入门:Collection & List 接口超详细讲解
java·list
Cxiaomu5 小时前
React Native项目(Android )集成虹软 ArcFace(人脸识别增值版 5.0 Java)
android·java·react native
柒.梧.5 小时前
Java代理模式精讲:静态代理+JDK动态代理
java·开发语言·代理模式
悠闲蜗牛�5 小时前
Go语言高并发编程深度实战:从原理到性能优化的完整指南
java·运维·数据库
苡~5 小时前
【openclaw+claude系列02】全景拆解——手机、电脑、AI 三者如何协同工作
java·人工智能·python·智能手机·电脑·ai编程
予枫的编程笔记5 小时前
【Kafka进阶篇】Canal+Kafka+ES实战:内容平台数据同步难题,这样解最优雅
redis·mysql·elasticsearch·kafka·canal·数据同步·异步解耦