Redis 内存过期策略

回收进程如何工作

理解回收进程如何工作是非常重要的:
一个客户端运行了新的命令,添加了新的数据。
Redi检查内存使用情况,如果大于maxmemory的限制, 则根据设定好的策略进行回收。
一个新的命令被执行,等等。
所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。
如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。

Redis 内存设置

我们都知道如果我们要设置 Redis 的最大内存大小只需要在配置文件redis.conf 中配置一行 maxmemory xxx 即可,或者我们通过 config set 命令在运行时动态配置 Redis 的内存大小。

Redis 内存过期策略

noeviction : 不会清除旧数据, Redis 的默认策略;,当达到最大内存的时候,在增加新数据的时候会返回 error。
volatile-rtl: 淘汰最早会过期的数据(过期集合的键) 。
volatile-random: 随机淘汰数据(过期集合的键)。
volatile-lru: 淘汰最近使用最少的数据(过期集合的键)。
allkeys-random : 随机淘汰数据,这个策略不常用 。
allkeys-lru : 淘汰最近使用最少的数据。

根据具体场景选择策略

发布了85 篇原创文章 · 获赞 0 · 访问量 5066

猜你喜欢

转载自blog.csdn.net/iccolor2014/article/details/103986675