当前位置: 首页 > 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 的内存回收机制,可以有效避免内存耗尽问题。

http://www.dtcms.com/a/14149.html

相关文章:

  • 通过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文件导入节点及关系
  • bitcoinjs学习1—P2PKH
  • 【开源免费】基于SpringBoot+Vue.JS工作流程管理系统(JAVA毕业设计)
  • ubuntu20.04+RTX4060Ti大模型环境安装
  • SpringBoot实战:高效获取视频资源
  • chrome://version/
  • c++ 多线程知识汇总
  • 学习笔记-人脸识别相关编程基础
  • Flutter_学习记录_基本组件的使用记录_2
  • JavaScript函数与方法详解
  • 细说STM32F407单片机RTC的备份寄存器原理及使用方法