Redis缓存淘汰策略

2022-02-21  本文已影响0人  江月照我眠

LRU(less recently used)是Redis唯一支持的回收算法,当缓存占用的内存空间达到设置的最大空间时,会自动驱逐老的数据。

驱逐策略有以下几种:

一般来说:

volatile-lruvolatile-random主要应用场景是:既有缓存,又有持久key的实例中,一般这类场景应该使用单独的Redis实例。

值得一提的是,设置expire会消耗额外的内存,所以使用allkey-lru可以更高效地使用内存,因为这样使用的时候不需要设置过期时间。

Redis使用的并不是完全LRU算法,而是近似LRU算法。被删除的key也不一定是最满足LRU特征的key,而是通过近似LRU算法抽样,然后删除访问时间最古老的key。这样做得原因也是为了节省内存空间,在新版本3.0开始,使用pool(池子)来作为候选,这大大提高了算法效率,也使得近似LRU算法越来越接近纯LRU算法。

上一篇 下一篇

猜你喜欢

热点阅读