Redis默认无限使用服务器内存, 为防止极端情况下导致系统内存耗尽, 建议所有的Redis进程都要配置maxmemory。
在保证物理内存可用的情况下, 系统中所有Redis实例可以调整maxmemory参数来达到自由伸缩内存的目的。
注意,在64bit系统下,maxmemory设置为0表示不限制Redis内存使用;在32bit系统下,maxmemory不能超过3GB。
OOM command not allowed when used memory > ‘maxmemory’
从异常字面理解,当前已用内存空间大于预设最大内存空间
解决方案:
1. 修改 Redis 最大内存配置,加大内存空间
2. 修改 Redis 存储策略:LRU 最近最少使用策略,当内存空间不足时,新增的内存将原有不经常使用的KEY值替换掉
在线文件大小换算
https://www.bejson.com/convert/filesize
实例的 redis内存满了
used_memory_human:10.04G
maxmemory_human:10.00G
设置为 15G
> config set maxmemory 16106127360
> config rewrite
参考
为什么删除了大量的数据后,Redis的内存占用率依然很高?
https://www.zhihu.com/question/433891296/answer/1616915821
Redis的内存淘汰策略问题
如何解决Redis大key问题,看这一篇就够了
https://www.jianshu.com/p/50c0894c0a19
redis查找大key
Redis 获取大 key 的几种方式
redis-rdb-cli
https://github.com/leonchen83/redis-rdb-cli
Redis rdb CLI Redis CLI 工具