Redis设置过期时间
我们在set key 的时候,都可以给定一个expire time,就是过期时间,指定这个key 比如说只能存活一个小时,那么缓存到期就会失效
定性删除:
指的是Redis默认的每隔100ms就会随机的抽取一些设置了过期时间的key,检查是否过期,如果过期了就会删除,但是问题是,定期删除会导致很多过期的key到了时间没有被删除,所有就有了惰性删除
惰性删除:
当你获取某一个key的时候,Redis就会检查一下,这个key如果设置了过期时间,如果过了过期时间,就会删除,不会给你任何的返回值。
通过以上的两种手段结合起来使用,保证过期的key一定会删除,但是,如果定期删除漏掉了很多过期的key,然后你也没有及时的去查,也就没有走惰性删除,就会导致大量的过期的key堆积在内存之中,导致Redis内存块耗尽。
Redis内存淘汰机制
最常用的2中内存移除机制
- allkeys-lru:当内存不足的时候,不足以容纳新写入数据的时候,在键的空间中,移除最近最少使用的key
- allkeys-random:当内存不足的时候,不足以容纳新写入的数据的时候,在键的空间中,随机的移除最近很少使用的key
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。