策略简介"/>
Redis驱逐策略简介
Redis驱逐策略
要说到Redis的驱逐策略,可以通过在配置文件redis.conf中使用maxmemory和maxmemory-policy两个参数进行配置。
其中maxmemory用于指定最大的存储内存数。例如
maxmemory 100mb
如果将这个参数设置为0则表示不限制内存。
maxmemory-policy有以下几个选项
- noeviction
不驱逐,直接返回错误。
- allkeys-lru
对所有的key,使用lru(least recently used)策略。redis为了提升性能,并不会真的从所有key中找到全局最小值的进行淘汰,而是通过采样获取近似值的方式来决定最近使用的key。采样数可以通过maxmemory-samples 参数进行配置。
maxmemory-samples 3
- volatile-lru
对已经设置了ttl的key,使用lru(least recently used)策略。这个也是采样近似值。通过maxmemory-samples参数控制采样数。
- allkeys-random
对所有key,随机进行驱逐。
- volatile-random
对设置了ttl的key,随机进行驱逐。
- volatile-ttl
volatile-ttl的作用,是从设置了ttl的key中,选择最接近过期时间的key进行淘汰。这个也是采样近似值。通过maxmemory-samples参数控制采样数。
该值默认为3,可以通过配置这个值来提高最小ttl的获取精度。
- allkeys-lfu (redis 4.0以上)
对所有key使用lfu(least frequently used)策略。这个也是采样近似值。通过maxmemory-samples参数控制采样数。
- volatile-lfu(redis 4.0以上)
对设置了ttl的key,使用lfu(least frequently used)策略。这个也是采样近似值。通过maxmemory-samples参数控制采样数。
更多推荐
Redis驱逐策略简介
发布评论