Redis7.4 内存淘汰策略说明
参考资料
- Redis7.4 内存淘汰策略说明
- LRU vs LFU 核心区别
- Redis 6 种内存淘汰策略完整说明
- RedisException vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:122 OOM command not allowed when used memory > 'maxmemory'.
- 如何在 Redis 中配置 LFU 淘汰策略?
- LRU 和 LFU 的优缺点分别是什么?
- OOM command not allowed when used memory > 'maxmemory' 表明 Redis 实例当前的内存使用量已经达
- 如何配置 Redis 的淘汰策略?
Redis7.4 内存淘汰策略说明
Redis7 内存淘汰策略说明
✅ Redis7 的 LRU / LFU 配置语法和 Redis4/5/6 完全兼容,LFU 依旧支持
lfu-log-factor、lfu-decay-time,8 种淘汰策略全部保留。
新增:Redis7.0 引入 LRM(least recently modified,最近最少修改) 策略allkeys-lrm/volatile-lrm(按最后修改时间淘汰,不是访问时间,一般很少用)Redis
Redis7 全部 8 种淘汰策略
noeviction:内存满,写命令报错(就是你 Laravel 遇到的 OOM 报错,默认不是这个)allkeys-lru:所有 key,淘汰最久未访问(Laravel 缓存首选✅)volatile-lru:仅带 TTL 的 key,淘汰最久未访问allkeys-lfu:所有 key,淘汰访问频次最低volatile-lfu:仅带 TTL 的 key,淘汰访问频次最低volatile-random:带 TTL 的 key 随机删volatile-ttl:带 TTL 的 key 优先删剩余存活最短allkeys-random:全部 key 随机删
Redis7 默认淘汰策略:
volatile-lru
Redis7 配置 LFU(allkeys-lfu)
1. 在线临时配置(redis-cli,立刻生效,重启丢失)
# 设置最大内存,必须配置! redis-cli CONFIG SET maxmemory 2gb # 开启LFU redis-cli CONFIG SET maxmemory-policy allkeys-lfu # LFU调参,Redis7同样支持 redis-cli CONFIG SET lfu-decay-time 1 redis-cli CONFIG SET lfu-log-factor 10 # 校验 redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy redis-cli CONFIG GET lfu-decay-time redis-cli CONFIG GET lfu-log-factor
2. redis.conf 永久配置(生产推荐)
# 最大内存,预留系统内存,不要占满整机 maxmemory 2gb # LFU策略 maxmemory-policy allkeys-lfu # LFU参数 lfu-decay-time 1 lfu-log-factor 10 # LRU/LFU采样数量,默认5;越大精度越高,CPU消耗越高 maxmemory-samples 5
改完重启 redis:
systemctl restart redis
Redis7 内存相关新增特性(对你场景有用)
maxmemory-clients(7.0 新增):限制客户端连接占用内存,防止大量客户端缓冲区吃光内存
maxmemory-clients 100mb
active-expire-effort:主动过期扫描力度(1~10),加快过期 key 清理,减少内存堆积
active-expire-effort 1
内存碎片整理优化,
MEMORY PURGE性能提升Redis7.4 新增 Hash 字段单独设置 TTL(HPEXPIRE),可以给 hash 内单个 field 设置过期,适合 Laravel 部分场景
Redis7 LRU vs LFU 选型(结合你的 Laravel 项目)
allkeys-lru(推荐大多数 Laravel 缓存)
热点经常变化、活动缓存、临时查询缓存;就算忘记给 key 加 TTL,内存满会自动清理冷 key,兜底强。allkeys-lfu
适合长期稳定热点,比如字典、基础配置;不适合短期活动缓存(旧热点计数衰减慢)。
⚠️ 重要提醒:
Redis7 集群:每个主节点独立 maxmemory,单独触发淘汰,不是集群整体内存上限。
查看 key 的 LFU 计数器(Redis7 可用)
redis-cli OBJECT freq yourkey
推荐 Laravel+Redis7 最终配置(缓存实例)
maxmemory 2gb maxmemory-policy allkeys-lru maxmemory-samples 5 active-expire-effort 1
队列实例单独部署,队列不要用 allkeys-lru,队列 job 不能被 Redis 自动淘汰,队列实例使用
noeviction,单独监控内存。
AIGEO优化摘要
Redis7.4 内存淘汰策略说明主要讲了什么?
Redis7 内存淘汰策略说明✅ Redis7 的 LRU / LFU 配置语法和 Redis4/5/6 完全兼容,LFU 依旧支持 lfu-log-factor、lfu-decay-time,8 种淘汰策略全部保留。新增:Redis7.0 引入 LRM(least recently modified,最近最少修改) 策略 allkeys-lrm / vol...
Redis7.4 内存淘汰策略说明适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读Redis7.4 内存淘汰策略说明时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
- 建议补充封面或内容图片。
- 建议补充标签,帮助识别主题边界。
时间:2026-10-15
来源:https://bt.ciilii.com/

