test

redis

redis持久化(内存中的数据保存在磁盘)

参考 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的内存会越来越高。那么就应该采用内存淘汰机制。

缓存雪崩、缓存击穿、缓存穿透

  1. 缓存雪崩

    大规模的key失效(缓存时间随机)

  2. 缓存击穿

    某个热点的key失效 (缓存时间不失效)

  3. 缓存穿透

    传过来的值在redis中不存在,穿透redis访问到数据库,比如,黑客传大量不存在的key(null存入缓存)

数据类型

数据值类型

漏斗模型