Redis 底层使用了三种策略来清理过期的key

一、被动清理

触发条件:读/写一个已经过期的key

当读写一个key时,Redis首先检查key是否存在,若存在且已经过期,则删除key的同时返回nil给客户端

二、定期清理

触发条件:Redis定期检查

redis会定期执行清理过期key的任务,运行频率由redis.conf中的hz参数决定,取值范围1~500,默认是10,代表每秒运行10次。

清理过程如下:

1)遍历所有的db
2)从db中设置了过期时间的key的集合中随机检查20个key
3)删除检查中发现的所有过期key
4)如果检查结果中25%以上的key已过期,则继续重复执行步骤2-3,否则继续遍历下一个db

调大hz将会提高redis定期任务的执行频率,如果redis中包含很多过期key的话,可以考虑将这个值调大,但要注意同时也会增加CPU的压力,redis作者建议这个值不要超过100。

三、强制删除

触发条件:Redis 使用内存达到 maxmemory 的配置,然后根据 maxmemory-policy 来清理过期 key

具体的 maxmemory-policy 可以参考我之前的文章:Redis LRU 缓存回收机制_潘广宇 de 小白笔记的博客-CSDN博客

清理过程是阻塞的,直到清理出足够的内存空间才会停止

参考:

redis过期key的删除策略_自由de单车的博客-CSDN博客_redis的key过期了会自动删除吗

Redis 过期 key 清理删除策略汇总相关推荐

  1. redis过期key的删除策略

    前言 在使用redis的过程中,不免会产生过期的key,而这些key过期后并不会实时地马上被删除,当这些key数量累积越来越多,就会占用很多内存,因此在redis底层同时使用了三种策略来删除这些key ...

  2. Redis过期键的删除策略

    文章目录 立即删除 惰性删除 定时删除 Redis使用的策略 Redis中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间.作为一个缓存数据库,这是非常实用的.如我们一 ...

  3. Redis 过期 key 删除,那些不得不说的事情!

    点击关注公众号,利用碎片时间学习 1.过期key的删除策略 定时删除:当为key设置过期时间的时候,设置一个定时任务,到时间后即刻调用并删除 定期删除:每隔一定的时间,对某些key进行扫描,并删除掉其 ...

  4. 【2020尚硅谷Java大厂面试题第三季 04】Redis 9种数据类型使用场景,分布式锁演变步骤,lua脚本,redis事务,Redisson,Redis内存占用,删除策略,内存淘汰策略,手写LRU

    1.安装redis6.0.8 2023 02 02 为:redis-7.0.8.tar.gz 2.redis传统五大数据类型的落地应用 3.知道分布式锁吗?有哪些实现方案?你谈谈对redis分布式锁的 ...

  5. redis过期key的清理/删除策略

    一,有三种不同的删除策略 立即清理.在设置键的过期时间时,创建一个回调事件,当过期时间达到时,由时间处理器自动执行键的删除操作. 惰性清理.键过期了就过期了,不管.当读/写一个已经过期的key时,会触 ...

  6. redis对过期数据的删除策略

      在redis中可以设置键的过期时间,对于过期键的删除策略有三种:定时删除.惰性删除.定期删除 定时删除   定时删除即立即删除,指在设置过期时间时创建一个定时器,在定时器到时间时,立即删除设置的键 ...

  7. 2022-04-12 redis过期key删除策略

    1 定时删除: 在设置键过期时间的同时,创建一个定时器,让定时器在过期时间来临时,立即执行对键的删除操作; 这样做有一个弊端,就是当有很多key同一时间过期的时候,会造成一时间的CPU紧张,从而可能影 ...

  8. Redis过期key是怎么样清理的?

    在Redis中,对于过期key的清理主要有惰性清除,定时清理,内存不够时清理三种方法,下面我们就来具体看看这三种清理方法. (1)惰性清除 在访问key时,如果发现key已经过期,那么会将key删除. ...

  9. Redis过期key是怎么清理的

    过期删除策略 删除到达过期时间的 key . 第一种:定时检查删除 对于每一个设置了过期时间的 key 都会创建一个定时器,一旦达到过期时间都会删除.这种方式立即清除过期数据,对内存比较好, 但是有缺 ...

最新文章

  1. 【教程】简易CDQ分治教程学习笔记
  2. pandas 判断数据表中的缺失值
  3. 5.1.5 IO核心子系统
  4. 求序列中第k小的数_无理数的整数部分与小数部分
  5. 超级终端软件哪个好_同城配送软件哪个好?如何选择配送软件?
  6. oracle统计每天数据增量,每天的业务数据增量导入oracle库方法讨论
  7. POJ 2253 1797
  8. 学习笔记:OMP算法(Spatially Sparse Precoding in Millimeter wave MIMO Systems)
  9. 基于ZigBee cc2530单片机多传感器的智能阳台仿真设计与实现
  10. 计算机搜索不了硬盘文件资料,解决WINDOWS痛点,本地文件搜索从未如此简单
  11. 富媒体广告投放的一些经验
  12. 如何把网站从万网转到百度的服务器,百度域名服务上线“域名转入”功能 附转入教程...
  13. 投影仪买哪个好?家用投影仪哪种好
  14. 2014淘宝钻石展位新客户考试
  15. 小猪佩奇的4种python玩法,带你趣味学python!
  16. SystemInfo 类
  17. GOE:Nintendo Switch™ 对战忍者口香糖动作游戏 『Ninjala』决定于2020年6月25日发售
  18. while ... Wend循环语句的用法
  19. [渝粤教育] 西南科技大学 证券投资学 在线考试复习资料(1)
  20. php周未班培训,SEO培训周末班招生简章

热门文章

  1. Linux计划任务(at/crontab)
  2. c++中atoi函数
  3. MATLAB数据处理(2)——广义帕累托分布和极值外推
  4. 前缀、中缀、后缀的相互转换
  5. 容器应用优雅关闭的终极大招
  6. 【问题解决】检索com类工厂中clsid为 10020200-E260-11CF-AE68-00AA004A34D5 的组件时失败...
  7. 南京软博会·开源软件论坛丨盖国强:持续投身鲲鹏产业生态建设
  8. 最近,软博会”收官“发布会如约而至……
  9. Materials Studio选中一类元素下所有原子
  10. Minio分布式存储系统