在 CentOS 上限制 Redis 内存使用,主要通过 redis.conf 配置参数 来实现。下面按常见场景说明。
一般路径:
/etc/redis.conf
# 或
/etc/redis/redis.conf
编辑配置文件:
vi /etc/redis.conf
找到或添加:
maxmemory 512mb
支持的单位:
kbmbgb例如:
maxmemory 1gb
maxmemory 256mb
只限制内存不够时,Redis 需要知道怎么处理旧数据。
maxmemory-policy allkeys-lru
常见策略说明:
| 策略 | 说明 |
|---|---|
noeviction |
不淘汰,写操作报错(默认) |
allkeys-lru |
所有 key 中使用 LRU 淘汰 |
volatile-lru |
只淘汰设置了过期时间的 key |
allkeys-random |
随机淘汰 |
volatile-random |
随机淘汰有过期时间的 key |
volatile-ttl |
淘汰剩余时间最短的 key |
✅ 一般推荐:
maxmemory 1gb
maxmemory-policy allkeys-lru
systemctl restart redis
或
systemctl restart redis-server
进入 Redis:
redis-cli
执行:
CONFIG SET maxmemory 512mb
CONFIG SET maxmemory-policy allkeys-lru
⚠️ 重启后会失效。
redis-cli
CONFIG GET maxmemory
CONFIG GET maxmemory-policy
如果你希望 OS 层面也限制(防止 Redis 被 OOM):
systemd 的 MemoryLimitcgroup示例(systemd):
[Service]
MemoryLimit=1G
如果你愿意,我可以: