当内存被填满时,使用易失性LRU maxmemory策略的Redis缓存会发生什么?

当内存被填满时,使用易失性LRU maxmemory策略的Redis缓存会发生什么?,redis,azure-redis-cache,Redis,Azure Redis Cache,我在Azure中有一个redis缓存,maxmemory策略设置为Volatile LRU。当我写信给Redis时,我没有为密钥添加过期时间。在这种情况下,当缓存内存被填满时会发生什么?在易失性lru策略下,redis将永远不会在未过期的情况下取出密钥。如果所有内存都被未设置有效期的键占用,则下次使用需要分配超出可用内存的命令时,例如set,该命令将失败,您将收到以下错误消息: OOM command not allowed when used memory > 'maxmemory'

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

易失性lru
策略下,redis将永远不会在未过期的情况下取出密钥。如果所有内存都被未设置有效期的键占用,则下次使用需要分配超出可用内存的命令时,例如
set
,该命令将失败,您将收到以下错误消息:

OOM command not allowed when used memory > 'maxmemory'

您仍然可以使用不分配内存的命令,如
GET
。如果您的数据库处于这种状态,您可以使用
EXPIRE
命令在事件发生后设置密钥的过期时间。

volatile lru
策略下,redis不会在没有过期的情况下收回密钥。如果所有内存都被未设置有效期的键占用,则下次使用需要分配超出可用内存的命令时,例如
set
,该命令将失败,您将收到以下错误消息:

OOM command not allowed when used memory > 'maxmemory'
您仍然可以使用不分配内存的命令,如
GET
。如果数据库处于这种状态,则可以使用
EXPIRE
命令在事件发生后设置键的过期时间