Redis的淘汰策略:
1、no-eviction:不删除策略
当达到最大内存限制时,如果还需要更多的内存:直接返回错误。
2、allkeys-lru
当达到最大内存限制时,如果还需要更多的内存:在所有的key中,挑选最近最少使用(LRU)的key淘汰。
3、volatile-lru
当达到最大内存限制时,如果还需要更多的内存:在设置了expire(过期时间)的key中,挑选最近最少使用(LRU)的key淘汰。
4、allkeys-random
当达到最大内存限制时,如果还需要更多的内存:在所有的key中,随机淘汰部分key。
5、volatile-random
当达到最大内存限制时,如果还需要更多的内存:在设置了expire(过期时间)的key中,随机淘汰部分key。
6、volatile-ttl
当达到最大内存限制时,如果还需要更多的内存:在设置了expire(过期时间)的key中,挑选TTL(time to live,剩余时间)短的key淘汰。
常用的淘汰算法:
FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。
LRU:Least Recently Used,最近最少使用。判断最近被使用的时间,目前最远的数据优先被淘汰。
LFU:Least Frequently Used,最不经常使用。在一段时间内,数据被使用次数最少的,优先被淘汰。