Redis: OOM command not allowed when used memory > ‘maxmemory’

1、事故:

检查服务器,发现redis无法正常写入,大多数时候写入失败,打开redis的日志信息发现:
Redis: OOM command not allowed when used memory > ‘maxmemory’
意思是Redis内存不足,可以在命令行中,通过 info memory查看当前redis 的内存设置信息,如下:

# Memory
used_memory:2365344
used_memory_human:2.26M
used_memory_rss:9953280
used_memory_rss_human:9.49M
used_memory_peak:2483552
used_memory_peak_human:2.37M
total_system_memory:16725504000
total_system_memory_human:15.58G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:4194304
maxmemory_human:4.00M
maxmemory_policy:noeviction
mem_fragmentation_ratio:4.21
mem_allocator:jemalloc-4.0.3

可以看到已用的和当前的设置,我这里是调整之后的数据,单位是byte

2、方案:

通过whereis redis.conf找到redis的配置文件
打开文件并找到memory配置项,设置你需要的大小,比如:4194304,这是4GB的大小,注意memory的说明信息,这里的单位是byte

修改完成之后,reload当前redis服务,可能用到
service redis-server reload
或者
service redis-server force-reload
这样基本上就能解决上述问题了,如有其他问题还需一一对应解决之。

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注