1. 当你的系统报:如下问题的时候,表示你的redis已经爆了
代码语言:javascript复制redis.clients.jedis.exceptions.JedisDataException: OOM command not allowed when used memory > 'maxmemory'.
at redis.clients.jedis.Protocol.processError(Protocol.java:123)
at redis.clients.jedis.Protocol.process(Protocol.java:157)
at redis.clients.jedis.Protocol.read(Protocol.java:211)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:196)
at redis.clients.jedis.Jedis.set(Jedis.java:2984)
at com.sungrow.sgframe.api.isolarapi.powerstationservice.service.asyncop.AsyncService$1.run(AsyncService.java:635)
at java.lang.Thread.run(Thread.java:748)
2. 首先你要找到出问题的reids,可以使用redis-cli链接redis地址
在控制台输入:
代码语言:javascript复制info memory
3. 我们可以修改最大内存上限
代码语言:javascript复制# 也可以通过这条命令设置 maxmemory 最大内存上限
config set maxmemory 3048000000
# 也可以通过这条命令设置内存淘汰策略 使用lru算法进行内存淘汰
config set maxmemory-policy allkeys-lru
再看下我们的内存使用情况
注意:当前修改的方式只是临时解决方案,redis重启就不会生效,如果想长久生效,需要修改配置文件
找到redis的配置文件
然后重启redis:
代码语言:javascript复制systemctl restart redis
参考链接:https://www.mr-wu.cn/how-to-set-redis-max-memory/