redis的数据淘汰策略
时间: 2023-11-24 16:51:53 浏览: 146
79.redis数据淘汰机制.avi
Redis有6种数据淘汰策略,分别是volatile-lru、allkeys-lru、volatile-lfu、allkeys-lfu、volatile-random、allkeys-random。其中,volatile表示设置了过期时间的key,allkeys表示所有的key。这6种策略的具体含义如下:
1. volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰。
2. allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰。
3. volatile-lfu:从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰。
4. allkeys-lfu:从数据集(server.db[i].dict)中挑选最不经常使用的数据淘汰。
5. volatile-random:从已设置过期时间的数据集(server.db[i].expires)中随机选择数据淘汰。
6. allkeys-random:从数据集(server.db[i].dict)中随机选择数据淘汰。
需要注意的是,如果Redis使用的是LRU算法,那么在淘汰数据时,Redis会根据最近最少使用的原则淘汰数据。但是,实际上,Redis使用的LRU算法是一种不可靠的LRU算法,它实际淘汰的键并不一定是真正最少使用的数据,它的工作机制是:随机采集淘汰的key,每次随机选出5个key然后淘汰这5个key中最少使用的key。
阅读全文