redis淘汰策略的区别
时间: 2023-10-27 15:51:26 浏览: 50
面试官:Redis 过期删除策略和内存淘汰策略有什么区别?.doc
Redis有6种淘汰策略,它们的区别如下:
1. volatile-lru:从已设置过期时间的键空间中挑选最近最少使用的键淘汰。
2. volatile-lfu:从已设置过期时间的键空间中挑选使用频率最少的键淘汰。
3. volatile-ttl:从已设置过期时间的键空间中挑选即将过期的键淘汰。
4. allkeys-lru:从所有键空间中挑选最近最少使用的键淘汰。
5. allkeys-lfu:从所有键空间中挑选使用频率最少的键淘汰。
6. noeviction:禁止驱逐数据,新写入操作会报错。
其中,volatile-lru、volatile-lfu、volatile-ttl 这三种策略只会针对已设置过期时间的键进行淘汰,而 allkeys-lru、allkeys-lfu 则会扫描所有键空间,对所有键进行淘汰。noeviction 策略则不会进行淘汰操作。
需要注意的是,volatile-lru 和 allkeys-lru 的区别在于它们的淘汰对象不同,volatile-lru 只淘汰已设置过期时间的键,而 allkeys-lru 则淘汰所有键。同理,volatile-lfu 和 allkeys-lfu 的区别也是淘汰对象不同。
阅读全文