温馨提示×

centos redis配置怎样调内存

小樊
52
2026-09-11 18:43:05
栏目: 云计算

在 CentOS 上调整 Redis 的内存配置,通常是通过修改 redis.conf 配置文件,并配合系统层面的一些设置。下面按常见场景说明。


一、通过 redis.conf 限制/调整 Redis 内存

1. 找到 redis.conf

常见位置:

/etc/redis.conf
/etc/redis/redis.conf

查看 Redis 实际使用的配置文件:

ps -ef | grep redis

2. 设置最大内存(最重要)

编辑配置文件:

vim /etc/redis.conf

找到或添加:

maxmemory 2gb

示例:

  • maxmemory 512mb
  • maxmemory 2gb
  • maxmemory 0 # 不限制(默认)

⚠️ 生产环境强烈建议设置 maxmemory,防止把系统内存吃满。


3. 设置内存淘汰策略

当内存达到上限时的处理方式:

maxmemory-policy allkeys-lru

常用策略:

  • noeviction:不淘汰,写操作报错(默认)
  • allkeys-lru:所有 key 按 LRU 淘汰
  • volatile-lru:只淘汰带过期时间的 key
  • allkeys-random:随机淘汰
  • volatile-ttl:淘汰快过期的 key

4. 重启 Redis 生效

systemctl 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 内存使用情况

redis-cli info memory

重点关注:

  • used_memory
  • used_memory_human
  • maxmemory
  • mem_fragmentation_ratio

四、CentOS 系统层面注意事项

1. 关闭 Swap(可选,提高性能)

swapoff -a

2. 调整 vm.overcommit_memory

推荐 Redis 官方设置:

echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p

3. 关闭透明大页(THP)

echo never > /sys/kernel/mm/transparent_hugepage/enabled

永久生效可写入 rc.local。


五、常见问题

Redis 占满内存但不释放?

  • Redis 不会主动释放已分配内存
  • 内存碎片率 >1.5 可考虑重启或 activedefrag

想让 Redis 用更多内存?

  • 提高 maxmemory
  • 确保 CentOS 物理内存足够
  • 避免和 MySQL 等抢内存

如果你能说明:

  • Redis 版本
  • 单机还是集群
  • 内存跑满报错还是性能问题

我可以给你更精准的配置建议。

0 踩