如果redis中没有设置expire过期时间,那么redis中的数据将会是永久有效的,不会被自动删除 (在不超过最大内存的情况下)
,但是Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置:
redis最大内存不足
"时,数据清除策略,默认为"volatile
-lru
"。
volatile-lru ->对"过期集合
"中的数据采取LRU(近期最少使用)算法.如果对key使用"expire
"指令指定了过期时间,那么
此key将会被添加到"过期集合
"中。将已经过期/LRU的数据优先移除.如果"过期集合
"中全部移除仍不能满足内存需求,将OOM.
allkeys-lru ->对所有的数据,采用LRU算法
volatile-random ->对"过期集合
"中的数据采取"随即选取
"算法,并移除选中的K-V,直到"内存足够
"为止. 如果如果"过期集合
"
中全部移除全部移除仍不能满足,将OOM
allkeys-random ->对所有的数据,采取"随机选取
"算法,并移除选中的K-V,直到"内存足够
"为止
volatile-ttl ->对"过期集合"中的数据采取
TTL算法
(最小存活时间
),移除即将过期的数据
.
noeviction
->不做任何干扰操作
,直接返回
OOM异常
(待续
)