3.6 Redis缓存过期机制

 
  

Redis缓存过期机制

Redis的key设置了过期时间后(expire);虽然key过期查询不了,但是还是会占用服务器内存;

过期的缓存删除redis有两种策略

  1. 定期删除 (主动)

  2. 惰性删除(被动)

主动删除

redis定时检测缓存key是否过期,默认10次一秒 (区间 1-500)

3.6 Redis缓存过期机制_第1张图片

也可以提升他的检查频率,但是这样做会使CPU被占用的更多;

惰性删除

客户端请求的时候,当检测到这个key是过期的时候,才会对这个过期缓存进行删除;

这么做就对cpu非常友好,但是缺点就是用户如果一直不请求这个资源,那么这个过期key就会一直存在在内存中,占用内存资源;

针对于设置了expire的key

1、(主动)定期删除 (固定时间去检查过期key,进行删除,默认每秒检查10次)

2、(被动)惰性删除   (等客户端请求,请求到这个key,发现这个key过期了就删除)

内存淘汰管理机制

memory management

缩写解释:

    lru: 最久远被用到的

    lfu: 最少被使用到的

    volatile: 带有过期时间的

    volatile-ttl: 删除最快过期的key

* noeviction:旧缓存永不过期,新缓存设置不了,返回错误
* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
* allkeys-random:在所有的缓存中随机删除(不推荐)
* volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
* volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
* volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
 

你可能感兴趣的:(redis,redis)