参考 https://zhuanlan.zhihu.com/p/345725544
rdb 快照读
aof 记录操作日志
定期删除,redis默认每个100ms检查,是否有过期的key,有过期key则删除。需要说明的是,redis不是每个100ms将所有的key检查一次,而是随机抽取进行检查(如果每隔100ms,全部key进行检查,redis岂不是卡死)。因此,如果只采用定期删除策略,会导致很多key到时间没有删除
就是说在你获取某个key的时候,redis会检查一下,这个key如果设置了过期时间那么是否过期了?如果过期了此时就会删除。
==思考==: 采用定期删除+惰性删除就没其他问题了么? 不是的,如果定期删除没删除key。然后你也没及时去请求key,也就是说惰性删除也没生效。这样,redis的内存会越来越高。那么就应该采用内存淘汰机制。
大规模的key失效(缓存时间随机)
某个热点的key失效 (缓存时间不失效)
传过来的值在redis中不存在,穿透redis访问到数据库,比如,黑客传大量不存在的key(null存入缓存)
