有没有办法让Redis为特定键选择一个LRU(最近最少使用的)驱逐策略?我想要一组持久的密钥,如果没有足够的内存,就永远不会被驱逐。另一方面,如果内存不足,我希望自由驱逐另一组密钥。
答案 0 :(得分:7)
Redis的驱逐政策可能对您的案件有利。 您可以将maxmemory-policy设置为volatile-lru,这会导致Redis:
使用LRU算法
删除带有过期密钥的密钥
这意味着未使用TTL设置的密钥不是易失性的,因此不会被驱逐,但具有TTL的密钥将被最近最少使用的订单删除。
实际上,volatile-lru是默认策略,因此您所要做的就是确保为内存满员时您愿意丢失的密钥设置TTL。
编辑:从版本3.0开始,默认的驱逐策略是“noeviction”。 (changelog)