在 CentOS 上配置 Redis 内存,主要通过 修改 redis.conf 配置文件 来实现。下面按常见场景说明。
通常位置:
/etc/redis.conf
# 或
/etc/redis/redis.conf
查看 Redis 是否运行及配置文件位置:
redis-cli info server | grep config_file
编辑配置文件:
vi /etc/redis.conf
找到或添加:
maxmemory 2gb
可选单位:
bytes(默认)kbmbgb示例:
maxmemory 512mb
maxmemory 4gb
⚠️ 如果不设置,Redis 会使用系统所有可用内存,可能导致 OOM。
当内存达到上限时的处理方式:
maxmemory-policy allkeys-lru
常用策略:
| 策略 | 说明 |
|---|---|
| noeviction | 不淘汰,写操作报错(默认) |
| allkeys-lru | 所有 key 中淘汰最少使用的 |
| volatile-lru | 只淘汰设置了过期时间的 key |
| allkeys-random | 随机淘汰 |
| volatile-random | 随机淘汰带过期时间的 |
| volatile-ttl | 淘汰即将过期的 |
推荐:
allkeys-lruvolatile-lrusystemctl restart redis
# 或
systemctl restart redis-server
验证:
redis-cli config get maxmemory
redis-cli config get maxmemory-policy
redis-cli config set maxmemory 2gb
redis-cli config set maxmemory-policy allkeys-lru
⚠️ 重启后失效,建议同时改配置文件
redis-cli info memory
重点看:
used_memoryused_memory_humanmaxmemorymaxmemory 设 6Gfree -h
top
maxmemory 4gb
maxmemory-policy allkeys-lru
如果你愿意,可以告诉我:
我可以帮你给出最优内存配置方案。