redis 淘汰策略有哪些
时间: 2023-05-19 22:01:45 浏览: 75
Redis淘汰策略有以下几种:
1. volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。
2. volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。
3. volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。
4. allkeys-lru:从数据集中挑选最近最少使用的数据淘汰。
5. allkeys-random:从数据集中任意选择数据淘汰。
6. noeviction:禁止驱逐数据,新写入操作会报错。
希望能对您有所帮助。
相关问题
redis淘汰策略生产常规设置
Redis的淘汰策略(Eviction Policy)有多种,其中比较常用的有以下几种:
1. LRU(Least Recently Used):最近最少使用策略。根据键值对最近被访问的时间来决定淘汰哪些数据。
2. LFU(Least Frequently Used):最不经常使用策略。根据键值对最近被访问的次数来决定淘汰哪些数据。
3. Random(随机淘汰):随机选择一些键值对进行淘汰。
在生产环境中,一般会设置maxmemory参数来限制Redis的内存使用量,当Redis的内存使用量超过maxmemory时,就需要启用淘汰策略来释放内存空间。同时,也可以通过设置maxmemory-policy参数来指定淘汰策略的类型。
比如,如果想要使用LRU策略,可以将maxmemory-policy设置为"allkeys-lru";如果想要使用LFU策略,则将其设置为"allkeys-lfu";如果想要使用随机淘汰策略,则将其设置为"allkeys-random"。
另外,还可以通过设置maxmemory-samples参数来调整淘汰策略的精度,以及通过设置maxmemory-reserved参数来预留一定的内存空间,避免Redis因为内存不足而崩溃。
redis淘汰策略的区别
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 的区别也是淘汰对象不同。