当前位置: 首页 > 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.lryc.cn/news/536487.html

相关文章:

  • docker安装mongo,导入、导出数据
  • Excel常用操作
  • 嵌入式EasyRTC实时通话支持海思hi3516cv610,编译器arm-v01c02-linux-musleabi-gcc
  • 在freertos中,中断优先级和任务优先级之间的关系和使用方法
  • 设置ollama接口能外部访问
  • Go GUI 框架, energy many-browser 示例解读
  • Docker 部署 MongoDB | 国内阿里镜像
  • 软件工程-软件设计
  • Elasticsearch:15 年来致力于索引一切,找到重要内容
  • DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署
  • Docker 部署 MySQL-5.7 单机版
  • 打破AI黑盒,拥抱开源力量:基于openGauss+DeepSeek的本地知识库,打造你的专属AI助手!
  • java配置api,vue网页调用api从oracle数据库读取数据
  • visual studio导入cmake项目后打开无法删除和回车
  • linux运行kettle 遇到问题汇总
  • 初识camel智能体(一)
  • 如何在Excel和WPS中进行翻译
  • TCP的拥塞控制
  • 【前端】几种常见的跨域解决方案代理的概念
  • C++之2048小游戏 第二期
  • Redis7——基础篇(一)
  • day9手机创意软件
  • C# Dictionary的实现原理
  • 学习笔记-人脸识别相关编程基础
  • BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234【代码审计/序列化/RCE】
  • (五)Spring Boot学习——spring security +jwt使用(前后端分离模式)
  • Java中使用EasyExcel
  • 前沿科技改变生活新趋势
  • 不到一个月,SQLite 3.49.0来了
  • Android车机DIY开发之软件篇(十四)编译i.mx8mplus官方kernel