redis的内存淘汰策略和键删除策略

  1. redis的内存淘汰策略
    redis5.0前提供了6种,redis5.0之后提供了8种

策略 概述
volatile-lru 从已设置过期时间的数据中挑选最近最少使用的数据淘汰,没有设置过期时间的数据不会被淘汰
volatile-ttl 从已设置过期时间的数据中挑选将要过期的数据淘汰,ttl值越大越优先被淘汰
volatile-random 从已设置过期时间的数据中任意选择数据淘汰
volatile-lfu 从已设置过期时间的数据中挑选使用频率最低的数据淘汰
allkeys-lru 面向所有的key,挑选最近最少使用的数据淘汰
allkeys-lfu 面向所有的key,挑选使用频率最低的数据淘汰
allkeys-random 面向所有的key,任意选择数据淘汰
no-enviction(驱逐) 禁止驱逐数据,默认策略。当内存不足又要插入新数据时,新写入操作报错
12 redis的键删除策略
redis默认采用定期+惰性删除策略

定时删除
在设置键的过期时间的同时,设置一个定时器,键过期,定时间马上把该键删除(对内存友好,因为及时清除过期键,节省空间;对CPU不友好,如果过期键很多,删除操作会消耗过多资源)
惰性删除
key过期后不做处理,仍留在内存中。当有命令操作这个key时,检查这个key是否过期,过期则删除,否则返回key对应数据(对CPU友好,只有读取key时发现其过期才删除;对内存不友好,过期键占用内存空间)
定期删除
redis数据库默认每隔100ms随机抽取一些设置了过期时间的key进行检测,过期则删除

文章转自:redis的内存淘汰策略和键删除策略_Java-答学网

作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

你可能感兴趣的:(redis,数据库,缓存)