温馨提示×

centos redis如何调内存

小樊
37
2026-09-27 01:13:49
栏目: 云计算

在 CentOS 上调整 Redis 内存,通常是从 Redis 配置层面 和 系统层面 两方面来做。下面按常见场景说明。


一、通过 Redis 配置限制/调整内存(最常用)

1. 修改 Redis 最大内存

编辑 Redis 配置文件(常见路径):

/etc/redis.conf
# 或
/etc/redis/redis.conf

找到或添加:

maxmemory 2gb

可选单位:

  • 1gb
  • 512mb
  • 1024mb

2. 配置内存淘汰策略

当内存达到上限时如何处理:

maxmemory-policy allkeys-lru

常见策略:

  • noeviction:不淘汰(写报错)
  • allkeys-lru:所有 key LRU 淘汰
  • volatile-lru:只淘汰带过期时间的 key
  • allkeys-random:随机淘汰

修改后重启 Redis:

systemctl restart redis

二、查看 Redis 当前内存使用情况

redis-cli
info memory

重点关注:

  • used_memory
  • used_memory_human
  • maxmemory

三、CentOS 系统层面限制(可选)

1. 修改系统最大内存分配(避免被 OS 杀掉)

编辑:

/etc/sysctl.conf

添加:

vm.overcommit_memory = 1

生效:

sysctl -p

2. 调整 open files / max map count(大内存时)

echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

四、如果是 Docker 中的 Redis(CentOS 上)

docker run -d \
  --name redis \
  -m 2g \
  redis:7 \
  redis-server --maxmemory 2gb --maxmemory-policy allkeys-lru

五、常见问题

Redis 占用内存比设置的大?

  • 有 内存碎片
  • 看 mem_fragmentation_ratio
  • 可重启或开启 activedefrag yes

修改后不生效?

  • 确认改的是 正在使用的配置文件
  • 确认 Redis 是用 systemctl 启动的

如果你能告诉我:

  • Redis 版本
  • 是否 Docker
  • 当前内存报错信息

我可以给你更精确的配置示例。

0 踩