温馨提示×

centos redis怎样限内存

小樊
40
2026-09-24 03:36:11
栏目: 云计算

在 CentOS 上限制 Redis 内存使用,常用且推荐的方式是通过 Redis 自身配置来限内存,而不是靠系统层。下面按常见场景说明。


一、通过 Redis 配置文件限制内存(最常用)

1. 修改 Redis 配置文件

Redis 默认配置文件一般在:

/etc/redis.conf

或

/etc/redis/redis.conf

编辑配置:

vim /etc/redis.conf

2. 设置最大内存

找到或添加:

maxmemory 512mb

常见单位:

  • mb
  • gb
  • 或直接写字节数(如 536870912)

示例:

maxmemory 1gb

3. 设置内存淘汰策略(非常重要)

如果不设置淘汰策略,内存满后写入会报错。

maxmemory-policy allkeys-lru

常用策略:

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

4. 重启 Redis

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

四、CentOS 系统层限制(不推荐但可选)

使用 systemd 限制(Redis 由 systemd 管理时)

编辑:

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

如果你愿意,可以告诉我:

  • Redis 版本
  • 是否是缓存 / 持久化场景
  • 服务器内存大小

我可以帮你给一套具体配置。

0 踩