Redis的定期删除和惰性删除

惰性删除

Redis并不是对于指定数据到了开发者设定好的生命结束时间就自动被删除,因为对这个内容进行不断轮询检测的性能消耗太大了,只有到了用户想要访问这个key所对应的内容的时候,Redis才会首先去检测这个key还是否有效,然后才将其进行删除。

这种做法虽然极大程度上利用了CPU但是会触发内存泄漏问题,因此就引入了定期删除机制。

定期删除

Redis的主线程每隔一段时间就会抽查一部分的key值,如果抽到过期的就会立即删除,如果抽到过期的占抽取总数的占比较大,主线程就会立刻触发的下一次的定期删除工作。

这样不会导致主线程一直都在定期删除吗?主线程内部有超时熔断机制,在执行定期删除任务达到一定时间就会立刻停下,转而对client请求进行处理。

注:4.0版本后,主线程对过期数据的清理工作,变成了主线程先查看释放内容大小,如果内存很大,就会摘除该指针并交由laze_free去清理,大大加快了释放空间的效率。

相关推荐
Crazy________2 分钟前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器
自由能燃气设备20 分钟前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
oradh36 分钟前
Oracle数据文件的大小和数量的限制总结
数据库·oracle·数据文件大小限制·数据文件数量限制
刘某的Cloud38 分钟前
Galera Cluster部署 mariadb 节点down机,log sequence number恢复
linux·运维·数据库·负载均衡·mariadb·集群·高可用
xiaohaiAIgeo39 分钟前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
SelectDB41 分钟前
Apache Doris 4.1 Spill to Disk:避免运行内存密集型查询发生 OOM
数据库
要开心吖ZSH1 小时前
本地缓存方案选择指南:volatile、ConcurrentHashMap、Caffeine 怎么选?
缓存·caffeine·volatile·本地缓存
范什么特西1 小时前
redis题目面渣重点
数据库·redis·缓存
今天的砖头有点烫手啊2 小时前
接口太慢?Spring Boot 缓存体系 @Cacheable 全链路拆解
spring boot·后端·缓存
TDengine (老段)2 小时前
TDengine taosAdapter — 多协议网关详解
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据