Redis设置过期时间

我们在set key 的时候,都可以给定一个expire time,就是过期时间,指定这个key 比如说只能存活一个小时,那么缓存到期就会失效

定性删除:

  指的是Redis默认的每隔100ms就会随机的抽取一些设置了过期时间的key,检查是否过期,如果过期了就会删除,但是问题是,定期删除会导致很多过期的key到了时间没有被删除,所有就有了惰性删除

惰性删除:

  当你获取某一个key的时候,Redis就会检查一下,这个key如果设置了过期时间,如果过了过期时间,就会删除,不会给你任何的返回值。

通过以上的两种手段结合起来使用,保证过期的key一定会删除,但是,如果定期删除漏掉了很多过期的key,然后你也没有及时的去查,也就没有走惰性删除,就会导致大量的过期的key堆积在内存之中,导致Redis内存块耗尽。

Redis内存淘汰机制

最常用的2中内存移除机制

  1. allkeys-lru:当内存不足的时候,不足以容纳新写入数据的时候,在键的空间中,移除最近最少使用的key
  2. allkeys-random:当内存不足的时候,不足以容纳新写入的数据的时候,在键的空间中,随机的移除最近很少使用的key

雨露
98 声望16 粉丝

« 上一篇
Redis 缓存之二
下一篇 »
Redis 缓存之四