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

Redis 内存回收机制

Redis 是一个基于内存的键值存储系统,为了避免内存耗尽,Redis 提供了多种内存回收机制。以下是 Redis 内存回收的主要方式:
1. 过期键删除
Redis 支持为键设置过期时间,过期后会自动删除键以释放内存。
1.1 设置过期时间

SET key value EX 60  # 设置键 60 秒后过期

1.2 删除策略
Redis 使用以下两种策略删除过期键:
惰性删除: 当访问一个键时,检查是否过期,如果过期则删除。
定期删除: 每隔一段时间随机检查一部分键,删除过期的键。
2. 内存淘汰策略
当 Redis 内存达到上限时,会根据配置的淘汰策略删除部分键以释放内存。
2.1 淘汰策略配置
在 redis.conf 中配置 maxmemory-policy:

maxmemory-policy allkeys-lru

2.2 常见淘汰策略

noeviction: 不删除键,返回错误(默认策略)。
allkeys-lru: 从所有键中删除最近最少使用的键(LRU)。
volatile-lru: 从设置了过期时间的键中删除最近最少使用的键。
allkeys-random: 从所有键中随机删除键。
volatile-random: 从设置了过期时间的键中随机删除键。
volatile-ttl: 从设置了过期时间的键中删除剩余时间最短的键。

3. 内存碎片整理
Redis 4.0 引入了内存碎片整理功能,通过 active-defrag 配置项启用。
3.1 配置内存碎片整理
在 redis.conf 中配置:

activedefrag yes

3.2 相关参数
active-defrag-ignore-bytes: 内存碎片超过指定字节时开始整理。
active-defrag-threshold-lower: 内存碎片率超过指定百分比时开始整理。

4. 总结
过期键删除: 通过惰性删除和定期删除释放内存。
内存淘汰策略: 根据配置的策略删除键以释放内存。
内存碎片整理: 通过 active-defrag 减少内存碎片。
通过合理配置 Redis 的内存回收机制,可以有效避免内存耗尽问题。


http://www.kler.cn/a/546194.html

相关文章:

  • AndroidStudio中可用的Ai插件
  • 基于Multi-Runtime的云原生多态微服务:解耦基础设施与业务逻辑的革命性实践
  • C语言-------结构体(1)
  • SpringMVC学习使用
  • USB2.03.0摄像头区分UVC相机在linux中的常用命令
  • 如何实现对 ELK 各组件的监控?试试 Metricbea
  • LeetCode每日精进:链表的回文结构
  • uniapp canvas 生成海报并保存到相册
  • 【IEEE/EI/CPCI检索】2025年第四届信号处理、信息系统与网络安全国际会议(SPISCS 2025)
  • 无需编码5分钟免费部署云上调用满血版DeepSeek
  • Python中的json文件操作
  • MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
  • 模糊综合评价法:原理、步骤与MATLAB实现
  • [每日动态]科技新闻每日信息差2025年2月14日
  • 阿里云一键部署DeepSeek-V3、DeepSeek-R1模型
  • springboot024企业客户管理系统
  • [免费]Springboot+Vue(带推荐算法)网上购物商城系统【论文+源码+SQL脚本】
  • DataX使用时常见问题(持续更新)
  • Python 调用 Azure OpenAI API
  • 【前端框架】深入Vue 3组件开发:构建高效灵活的前端应用