Redis数据过期、淘汰策略

数据过期策略:

惰性删除:

设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key。

这种方式对cpu友好(只在用的时候判断要不要删除不用一直判断),对内存不友好(过期的key一直存在内存中)

定期删除:

每隔一段时间,我们就对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。

定期删除有两种方式:

优点:可以通过限制删除操作执行的时长和频率来减少删除操作对CPU 的影响。另外定期删除,也能有效释放过期键占用的内存。 缺点:难以确定删除操作执行的时长和频率。

Redis实际上是两种策略配合使用的!!!

数据淘汰策略:

  • 内存满的时候不能写入(默认)

  • 剩余存活时间最小的被淘汰

  • 两种随机淘汰:全体key随机淘汰、设置了存活时间的key随机淘汰

  • 两种LRU淘汰:全体keyLRU淘汰、设置了存活时间的keyLRU淘汰

  • 两种LFU淘汰:全体keyLFU淘汰、设置了存活时间的keyLFU淘汰

相关推荐
Thanks_ks1 小时前
分布式系统中的并发控制与分布式锁机制深度剖析
redis·zookeeper·高并发·分布式锁·架构设计·并发控制·分布式系统
Java开发的小李8 小时前
SpringBoot + Redis 实现分布式 Session 共享(解决多实例登录状态丢失问题)
spring boot·redis·分布式
daixin884810 小时前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor
小猿姐11 小时前
Redis Kubernetes Operator 实测:三个方案的真实差距
redis·容器·kubernetes
TechWayfarer16 小时前
IP归属地运营商生产落地进阶:缓存+降级+灰度对账全解析
网络·python·网络协议·tcp/ip·缓存
aLTttY16 小时前
Spring Boot + Redis 实现接口防抖与限流实战指南
spring boot·redis·junit
Lyyaoo.18 小时前
TreadLocal和TreadLocalMap
android·java·redis
为美好的生活献上中指18 小时前
本地虚拟机部署redis集群
前端·redis·ubuntu·bootstrap·html·redis集群
coderlin_19 小时前
Langgraph项目三 agent搭建
java·数据库·redis
田梓燊19 小时前
力扣:146.LRU 缓存
算法·leetcode·缓存