+
80
-

今天redis设置缓存报错OOM command not allowed when used memory > 'maxmemory'”,这个怎么办?

今天redis设置缓存报错OOM command not allowed when used memory > 'maxmemory'”,这个怎么办?


网友回复

+
0
-

内存满了,有几种方法:

1、增加内存

2、设置内测淘汰策略maxmemory-policy,可设置为volatile-ttl或allkeys-lru

volatile-ttl: 这个策略会根据键的过期时间来淘汰数据。优先淘汰那些过期时间较早的键。适用于缓存中有明确过期时间的场景。maxmemory-policy volatile-ttl

allkeys-lru: 这个策略会根据最近最少使用的原则淘汰数据,不考虑过期时间。适用于无明确过期时间,但希望保留最常用数据的场景。

maxmemory-policy allkeys-lru

3、限制内存分配大小为实际内存的一半或95%,这样可以在Redis使用内存接近极限时预留一些空间,防止因为内存不足而导致系统性能下降或者OOM错误。

maxmemory 2GB # 可用内存的一半

或者设置为可用内存的95%:

maxmemory 95% # 可用内存的95%

我知道答案,我要回答