在 CentOS 上限制 Redis 内存使用,常用且推荐的方式是通过 Redis 自身配置来限内存,而不是靠系统层。下面按常见场景说明。
Redis 默认配置文件一般在:
/etc/redis.conf
或
/etc/redis/redis.conf
编辑配置:
vim /etc/redis.conf
找到或添加:
maxmemory 512mb
常见单位:
mbgb536870912)示例:
maxmemory 1gb
如果不设置淘汰策略,内存满后写入会报错。
maxmemory-policy allkeys-lru
常用策略:
noeviction:不淘汰,写报错(默认)allkeys-lru:所有 key LRU 淘汰volatile-lru:只淘汰带过期时间的 keyallkeys-random:随机淘汰volatile-ttl:优先淘汰快过期的systemctl restart redis
redis-cli
CONFIG SET maxmemory 512mb
CONFIG SET maxmemory-policy allkeys-lru
⚠️ 重启后会失效,仅用于测试
redis-cli
CONFIG GET maxmemory
CONFIG GET maxmemory-policy
或查看内存使用:
INFO memory
编辑:
systemctl edit redis
添加:
[Service]
MemoryLimit=1G
然后:
systemctl daemon-reload
systemctl restart redis
⚠️ 超出后 Redis 可能被 OOM Kill
✅ 使用:
maxmemory 物理内存的 60%~70%
maxmemory-policy allkeys-lru
例如 4G 服务器:
maxmemory 2gb
maxmemory-policy allkeys-lru
如果你愿意,可以告诉我:
我可以帮你给一套具体配置。