欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Redis 内存回收机制

Redis 内存回收机制

2025/2/21 3:24:04 来源:https://blog.csdn.net/weixin_37460672/article/details/145596252  浏览:    关键词: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 的内存回收机制,可以有效避免内存耗尽问题。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词