Redis的淘汰策略可以通过以下几种方式进行配置:
maxmemory-policy
:在Redis的配置文件中,可以通过设置maxmemory-policy
参数来指定淘汰策略。可选的值有:
volatile-lru
:在设置了过期时间的key中,优先删除最近最少使用的key。allkeys-lru
:不考虑过期时间,优先删除最近最少使用的key。volatile-random
:在设置了过期时间的key中,随机删除一个key。allkeys-random
:不考虑过期时间,随机删除一个key。volatile-ttl
:在设置了过期时间的key中,优先删除时间最早的key。noeviction
:不进行淘汰策略,当内存不足时,所有写入操作都会报错。例如:maxmemory-policy allkeys-lru
maxmemory-samples
:在Redis的配置文件中,可以通过设置maxmemory-samples
参数来指定淘汰策略的采样数量。默认值为5,表示随机选取5个key进行比较,选择淘汰其中最久未使用的key。可以根据实际情况调整该值。
例如:maxmemory-samples 10
maxmemory
:在Redis的配置文件中,可以通过设置maxmemory
参数来指定Redis服务器最大的内存限制。当达到这个限制时,Redis会根据淘汰策略进行数据的淘汰。
例如:maxmemory 100mb
需要注意的是,在Redis的淘汰策略中,volatile-lru
、volatile-random
和volatile-ttl
这三种策略只会对设置了过期时间的key进行淘汰,而allkeys-lru
和allkeys-random
则会对所有的key进行淘汰。