在 CentOS 上调整 Redis 的内存配置,通常是通过修改 redis.conf 配置文件,并配合系统层面的一些设置。下面按常见场景说明。
常见位置:
/etc/redis.conf
/etc/redis/redis.conf
查看 Redis 实际使用的配置文件:
ps -ef | grep redis
编辑配置文件:
vim /etc/redis.conf
找到或添加:
maxmemory 2gb
示例:
maxmemory 512mbmaxmemory 2gbmaxmemory 0 # 不限制(默认)⚠️ 生产环境强烈建议设置 maxmemory,防止把系统内存吃满。
当内存达到上限时的处理方式:
maxmemory-policy allkeys-lru
常用策略:
noeviction:不淘汰,写操作报错(默认)allkeys-lru:所有 key 按 LRU 淘汰volatile-lru:只淘汰带过期时间的 keyallkeys-random:随机淘汰volatile-ttl:淘汰快过期的 keysystemctl restart redis
或
systemctl restart redis-server
进入 Redis:
redis-cli
查看当前配置:
CONFIG GET maxmemory
临时修改:
CONFIG SET maxmemory 2gb
CONFIG SET maxmemory-policy allkeys-lru
⚠️ 重启后会失效,需同步改 redis.conf
redis-cli info memory
重点关注:
used_memoryused_memory_humanmaxmemorymem_fragmentation_ratioswapoff -a
推荐 Redis 官方设置:
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效可写入 rc.local。
activedefragmaxmemory如果你能说明:
我可以给你更精准的配置建议。