当内存被填满时,使用Volatile-LRU maxmemory策略在Redis缓存中会发生什么?

时间:2017-11-07 23:00:28

标签: redis azure-redis-cache

我在Azure中有一个redis缓存,maxmemory策略设置为Volatile-LRU。写信给Redis时,我没有为密钥添加到期时间。在这种情况下,当缓存内存被填满时会发生什么?

1 个答案:

答案 0 :(得分:1)

根据volatile-lru政策,redis永远不会在没有到期的情况下驱逐密钥。如果所有内存都被没有设置到期的密钥用完,那么下次使用需要分配更多内存的命令时,比如SET,命令将失败,您将收到此错误消息:

OOM command not allowed when used memory > 'maxmemory'

您仍然可以使用不会分配内存的命令,例如GET。如果您将数据库置于此状态,则可以使用EXPIRE命令在事后设置密钥和到期时间。