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

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 的内存回收机制,可以有效避免内存耗尽问题。

相关文章:

  • 通过docker安装部署deepseek以及python实现
  • Git 分布式版本控制工具使用教程
  • 破局・重构:建筑行业数字化转型生死时速——当“推土机思维”撞上“数据洪流”,谁能率先上岸?
  • 自然语言处理NLP入门 -- 第三节词袋模型与 TF-IDF
  • 129,【2】buuctf [BJDCTF2020]EzPHP
  • React进阶之React核心源码解析(一)
  • 开源机器人+具身智能 解决方案+AI
  • 第一天:爬虫介绍
  • 设置ollama接口能外部访问
  • maven导入spring框架
  • vue3读取webrtc-stream 视频流
  • Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】
  • ​矩阵元素的“鞍点”​
  • Python爬虫实战:获取51job职位信息,并做数据分析
  • el-table封装一个自定义列配置表格组件(vue3开箱即用)
  • 高速存储文章目录
  • 称呼计算器:智能科技,简化您的计算生活
  • python后端调用Deep Seek API
  • ffmpeg基本用法
  • 图数据库neo4j进阶(一):csv文件导入节点及关系
  • 王毅同印度国家安全顾问多瓦尔通电话
  • 侧记|青年为何来沪创新创业?从这一天寻找答案
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • 广西钦州:坚决拥护自治区党委对钟恒钦进行审查调查的决定
  • 总粉丝破亿!当网络大V遇见硬核科技,互联网时代如何书写上海故事?
  • 临港新片区:发布再保险、国际航运、生物医药3个领域数据出境操作指引