标签:内存不足 默认 任务 机制 and 取出 频率 内存 就会
Redis的Key有3种过期删除策略,具体如下:
Redis服务器实际使用的是惰性删除和定期删除两种策略:通过配合使用这两种删除策略,服务器可以很好地在合理使用CPU时间和避免浪费内存空间之间取得平衡。Redis默认每隔100ms
随机抽取一些设置了过期时间的key,检查是否过期,如果过期就删除。
如果Redis服务器打开了maxmemory
选项,并且服务器占用的内存数超过了maxmemory
选项所设置的上限值时,会进行内存淘汰,常见的淘汰策略如下:
volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-lfu:从数据集(server.db[i].dict)中挑选使用频率最低的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据,这也是默认策略。意思是当内存不足以容纳新入数据时,新写入操作就会报错,请求可以继续进行,线上任务也不能持续进行,采用no-enviction策略可以保证数据不被丢失。
标签:内存不足 默认 任务 机制 and 取出 频率 内存 就会
原文地址:https://www.cnblogs.com/pinxiong/p/13288087.html