Redis过期策略

redis有两大类过期策略

(1)定期删除:redis每隔100ms随机抽取设置过期的key,检查key是否过期,若过期就删掉;

(2)惰性删除:使用定期删除由于其随机性,会造成部分过期值没有及时清理,所以需要有另一中机制来弥补,那么就出现了惰性删除机制,惰性删除机制就是在get这个key值的时候,如果这个key已过期,那么删除,不返回任何东西;

reids六大淘汰机制

  由于过期策略还是会造成大量过期数据留着内存中,严重影响redis存储和性能,所以需要有一些策略来弥补

  (1)noeviction(驱逐)禁止驱逐数据,当内存不足以容纳新的数据时,新写入入操作会报错(一般不用吧):

  (2)allkeys_lru:从数据集(server.db[i].dict)中挑选最少使用的数据淘汰,即移除最少使用key(最常用);

  (3)allkys_random:从已设置过期时间的数据集(server.db[i].dict)中任意选择数据淘汰,即随机移除最少使用的key(不常用);

  (4)volatile_lru:从已设置过期时间的数据集(server.db[i].expries)中挑选最近使用的数据淘汰;

  (5)volatile_random:从已设置过期时间的数据集(server.db[i].expries)中挑选任意数据淘汰;

  (6)volatile-ttl:从已设置过期时间的数据集(server.db[i].expries)中挑选将要过期的数据淘汰;

 

posted @ 2020-04-28 13:22  小小吸血鬼  阅读(230)  评论(0编辑  收藏  举报