如何让Redis只为部分键选择LRU驱逐策略?

Hen*_*hiu 4 redis

有没有办法让Redis选择仅针对特定密钥的LRU(最近最少使用的)驱逐策略?我想要一组持久的密钥,如果没有足够的内存,就永远不会被驱逐.另一方面,如果内存不足,我希望另一组密钥可以自由驱逐.

ker*_*ero 7

Redis有一项驱逐政策可能对您的案件有利.您可以将maxmemory-policy设置为volatile-lru,这会导致Redis:

使用LRU算法删除带有过期集的密钥

这意味着未使用TTL设置的密钥不是易失性的,因此不会被驱逐,但具有TTL的密钥将被最近使用的订单删除.

实际上,volatile-lru是默认策略,因此您所要做的就是确保为内存满员时您愿意丢失的密钥设置TTL.

编辑:从版本3.0开始,默认的驱逐策略是"noeviction".(更改日志)