【Java面试题】redis的过期策略有哪些

redis通过设置过期时间来控制键值对的存活时长,过期时间可以通过expire , pexpire

expireat , pexpireat 等命令设置,String 类型数据可以通过setex命令设置过期时间。

以下介绍三种redis的过期策略:

1. 定时删除

在设置键值对的过期时间的同时,创建一个定时器,当键值对到了过期的时间,定时器会立即

对键值对进行删除。

优点: 保证对过期键的尽快删除,快速释放内存空间

缺点: redis中绝大多数键值对是携带过期时间的,这样会造成大量的定时器在执行,严重降低

系统的性能,不推荐使用

2.惰性删除

不持续关注key的过期时间,从数据库中获取key的时候,他会检查这个key是否过期,如果过期就会删除这个key

优点: 解决定时删除会占用大量cpu资源的问题

缺点: 对内存空间不友好,会造成内存空间的浪费

3.定期删除

每隔一段时间进行删除

**优点:**通过限制删除操作的时长和频率,来减少删除操作对CPU时间的占用

定期删除过期key

缺点: 在内存方面不如定时删除

在cpu资源方面不如惰性删除

redis采用的过期策略是定期删除惰性删除 相结合的方式

每隔一段时间,随机从键集合中选取一些键,进行检查,如果过期则删除

相关推荐
AI进化营-智能译站2 小时前
ROS2 C++开发系列17-多线程驱动多传感器|chrono高精度计时实现机器人同步控制
java·c++·ai·机器人
天若有情6735 小时前
程序员原创|借鉴JS事件冒泡,根治电脑文件混乱的“冒泡整理法”
开发语言·javascript·windows·ecmascript·电脑·办公·日常
qq_589568105 小时前
springbootweb案例,出现访问 http://localhost:8080/list 一直处于浏览器运转阶段
java·网络协议·http·list·springboot
JAVA面经实录9176 小时前
计算机基础(完整版·超详细可背诵)
java·linux·数据结构·算法
特种加菲猫6 小时前
继承,一场跨越时空的对话
开发语言·c++
AC赳赳老秦6 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
FYKJ_20107 小时前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
玩转单片机与嵌入式7 小时前
玩转边缘AI(TInyML):需要掌握的C++知识汇总!
开发语言·c++·人工智能
恼书:-(空寄7 小时前
Redisson 原理与最佳实践
redis·分布式锁·redisson