当Redis中内存不足的时候,为了保证命中率,就会选择一定的数据淘汰策略。
volatile(从已经设置过期时间的key中)
allkeys(所有的key中)
1:volatile-lru:当内存不足时,从设置了过期时间的key中使用LRU(最近最少使用)算法,选出最近使用最少的数据,进行淘汰
2:allkeys-lru:当内存不足时,从所有key中使用LRU(最近最少使用)算法,选出最近使用最少的数据,进行淘汰。
3:volatile-lfu:当内存不足时,从设置了过期时间的key中使用LFU算法,选出使频率最低的数据,进行淘汰。
4:allkeys-lfu:当内存不足时,从所有key中使用LFU算法,从所有key中使用LFU算法,选出使频率最低的数据,进行淘汰。
5:volatile-random:当内存不足时,从设置了过期时间的key中,随机选出数据,进行淘汰。
6:allkeys-random:当内存不足时,从所有的key中,随机选出数据,进行淘汰。
7:volatile-ttl:当内存不足时,从设置了过期时间的key中,选出即将过期的数据(按照过期时间的先后,选出先过期的数据),进行淘汰。
8:no-enviction:当内存不足时,禁止淘汰数据,写入操作报错默认策略,是 Redis默认的内存淘汰策略。