如何配置 Redis 的淘汰策略?
参考资料
- Redis7.4 内存淘汰策略说明
- RedisException vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:122 OOM command not allowed when used memory > 'maxmemory'.
- Laravel .env 中 Redis 相关配置(Redis7)
- OOM command not allowed when used memory > 'maxmemory' 表明 Redis 实例当前的内存使用量已经达
- 如何在 Redis 中配置 LFU 淘汰策略?
- LRU 和 LFU 的优缺点分别是什么?
- LRU vs LFU 核心区别
- 如何配置 Redis 的淘汰策略?
如何配置 Redis 的淘汰策略?
Redis 内存淘汰策略配置
前提:必须先设置
maxmemory,否则maxmemory-policy不会生效!Redis 不限制最大内存时,淘汰策略不起作用。
两种方式:临时配置(重启失效)、永久配置(redis.conf)
方式 1:redis-cli 在线临时设置(生产紧急修复,重启 Redis 丢失)
# 1. 设置最大内存(示例2G,根据服务器调整) redis-cli CONFIG SET maxmemory 2gb # 2. 设置淘汰策略,Laravel缓存推荐 allkeys-lru redis-cli CONFIG SET maxmemory-policy allkeys-lru # 3. 验证配置是否生效 redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy
单位支持:
b(字节)、kb、mb、gb
方式 2:修改 redis.conf 永久配置(推荐,重启依然生效)
找到 redis 配置文件,一般路径:
Linux:
/etc/redis/redis.conf编译安装:
/usr/local/redis/redis.conf编辑
redis.conf
# 设置最大可用内存,不要占满服务器全部内存! maxmemory 2gb # 内存淘汰策略 maxmemory-policy allkeys-lru
注释说明:去掉前面的
#才会生效
修改完成后重启 Redis 服务
# centos systemctl restart redis # ubuntu systemctl restart redis-server
重启后校验
redis-cli CONFIG GET maxmemory-policy
👉 Docker 部署 Redis 额外说明
如果是 docker 启动 redis,两种方案:
挂载外部
redis.conf文件,在 conf 里写上面配置(推荐)启动命令增加参数:
docker run --name redis -p 6379:6379 redis redis-server --maxmemory 2gb --maxmemory-policy allkeys-lru
👉 Redis 集群
集群模式下,每个主节点都要单独配置,每个节点的 maxmemory 是单节点上限,不是集群总内存。
⚠️ 重要注意事项
maxmemory是 Redis 实例可用内存上限,Redis 本身会额外占用内存(客户端连接、缓冲区、内存碎片),设置值建议预留服务器 20% 以上系统内存,防止服务器 OOM。只有达到
maxmemory阈值,淘汰策略才会触发;内存没到上限,不会自动删 key。如果你 Redis 同时存放不能丢失的业务数据,不要使用
allkeys-lru,改用noeviction,同时做好内存监控。Laravel 队列如果共用 Redis,队列 job 属于业务数据,被 LRU 淘汰会丢任务!
✅ 最佳实践:缓存单独 Redis 实例(allkeys-lru);队列 / 持久数据单独 Redis 实例(noeviction)
可选策略直接复制
# 缓存场景 maxmemory-policy allkeys-lru # 混合场景(只淘汰带过期key) maxmemory-policy volatile-lru # 不淘汰,内存满直接报错(存重要业务数据) maxmemory-policy noeviction
需要我顺便给你写个定时监控 Redis 内存使用率的 shell 脚本吗?内存超过阈值发告警。
AIGEO优化摘要
如何配置 Redis 的淘汰策略?主要讲了什么?
Redis 内存淘汰策略配置前提:必须先设置 maxmemory,否则 maxmemory-policy 不会生效!Redis 不限制最大内存时,淘汰策略不起作用。两种方式:临时配置(重启失效)、永久配置(redis.conf)方式 1:redis-cli 在线临时设置(生产紧急修复,重启 Redis 丢失)单位支持:b(字节)、kb、mb、gb方式 2:修...
如何配置 Redis 的淘汰策略?适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读如何配置 Redis 的淘汰策略?时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
- 建议补充封面或内容图片。
- 建议补充标签,帮助识别主题边界。
时间:2026-10-15
来源:https://bt.ciilii.com/

