有没有办法让 Redis 只为特定的键选择 LRU(最近最少使用)驱逐策略?如果没有足够的内存,我希望一组键是持久的并且永远不会被驱逐。另一方面,如果内存不足,我希望另一组键被自由驱逐。
问问题
3311 次
有没有办法让 Redis 只为特定的键选择 LRU(最近最少使用)驱逐策略?如果没有足够的内存,我希望一组键是持久的并且永远不会被驱逐。另一方面,如果内存不足,我希望另一组键被自由驱逐。
Redis 有一个驱逐政策,这可能对你的情况有好处。您可以将 maxmemory-policy 设置为 volatile-lru,这会导致 Redis:
使用 LRU 算法删除设置了过期时间的密钥
这意味着未设置 TTL 的密钥不是易失的,因此不会被驱逐,但具有 TTL 的密钥将按最近最少使用的顺序删除。
实际上,volatile-lru 是默认策略,所以您要做的就是确保为您愿意在内存已满时丢失的密钥设置 TTL。
编辑:从 3.0 版开始,默认的驱逐策略是“noeviction”。(变更日志)