当前位置: 首页 > news >正文

Redis学习07-Redis的过期策略

Redis 过期策略

什么是过期策略

Redis 的过期策略用于管理设置了过期时间(TTL)的键,确保在键过期后能够被及时删除,从而释放内存

整体策略

Redis 采用的是定期删除+惰性删除的组合策略

1. 定期删除

  • 原理:周期性的从过期键集合中抽取一部分键,验证其过期时间,若已过期则删除。
  • 频率:默认每秒运行 10 次,即每 100ms 一次,可以通过修改配置更改频率
  • 优点:主动清理过期键,避免内存浪费,同时这种方式能保证抽取检查的过程足够快,避免长时间阻塞
  • 缺点:占用一定的 CPU 资源

为什么定期删除是周期性的抽取部分键?
因为redis是单线程的程序,主要的任务是处理每个命令的任务。
如果扫描过期key消耗的时间太多,就可能导致正常处理请求命令被阻塞(类似于在大量数据的背景下执行key *的效果)

2. 惰性删除

  • 原理:当键到达过期时间时,并不会立即被删除。而是当后续有请求访问该键时,Redis 服务器才会触发删除操作,并返回 nil
  • 优点:节省 CPU 资源,只在必要时检查。
  • 缺点:如果一个键已经过期并一直未被访问,它会持续占用内存,造成内存资源浪费

其他补充策略

为了弥补定期删除和惰性删除的不足,Redis 还提供了一系列 内存淘汰策略,用于在内存不足时主动淘汰部分键,保障服务器的正常运行。

Redis 内置淘汰策略

策略淘汰范围淘汰算法
noeviction无(默认策略)内存不足时写入操作报错
allkeys-lru所有键LRU
allkeys-random所有键随机淘汰
volatile-lru设置过期时间的键LRU(最近最少使用)
volatile-random设置过期时间的键随机淘汰
volatile-ttl设置过期时间的键优先淘汰较早过期的键(FIFO)
http://www.dtcms.com/a/304315.html

相关文章:

  • (1-7-5) Mysql 对 数据的基本操作
  • MC0241防火墙
  • Object.freeze() 深度解析:不可变性的实现与实战指南
  • 道路坑洞检测数据集介绍8300张图片-智能道路巡检系统 车载安全监测设备 城市基础设施管理
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博文章数据可视化分析-文章评论量分析实现
  • 从零到一:Django图书管理系统完整开发实战指南
  • 开源数据库PostgreSQL专家技术
  • 从视觉到现实:掌握计算机视觉技术学习路线的十大步骤
  • 在 PolkaVM 上用 Rust 实现 ERC20 合约的全流程开发指南
  • 三维扫描相机:工业自动化的智慧之眼——迁移科技赋能智能制造新纪元
  • Element Plus常见基础组件(一)
  • 白玩 一 记录retrofit+okhttp+flow 及 kts的全局配置
  • Javaweb - 13 - AJAX
  • 《P5960 【模板】差分约束》
  • LeetCode Hot 100:11. 盛最多水的容器
  • Vulnhub 02-Breakout靶机渗透攻略详解
  • 牛顿拉夫逊法PQ分解法计算潮流MATLAB程序计算模型。
  • 【AI论文】Yume:一种交互式世界生成模型
  • Docker网络技术深度研究与实战手册
  • C++与C#实战:FFmpeg屏幕录制开发指南
  • 2025年KBS顶刊新算法-向光优化算法Phototropic growth algorithm-附Matlab免费代码
  • 从线下挂号到全流程智能问诊:智慧医院APP源码开发指南
  • MATLAB弹塑性固体有限元计算程序
  • 【LGR-234-Div.3】洛谷网校 7 月 CSP-J 模拟月赛 Cfz Round 6 「Cfz Round 6」Imaichi
  • 【PHP】通过IP获取IP所在地理位置(免费API接口)
  • Kruskal算法
  • gTest测试框架的安装与配置
  • HammerDB:一款免费开源的数据库基准测试工具
  • YOLOv11.pt 模型转换为 TFLite 和 NCNN 模型
  • PDF转Word免费工具!批量处理PDF压缩,合并, OCR识别, 去水印, 签名等全功能详解