-
缓存过期
- 每 100ms 随机扫描来删除过期数据(定期删除)
- 每次查询前确认数据是否过期(惰性删除)
-
缓存淘汰
- noeviction :返回错误,不会删除任何键值
- volatile-ttl :从设置了过期时间的键中删除剩余时间最短的键
- allkeys-lru :使用 LRU 算法删除最近最少使用的键值
- volatile-lru :使用 LRU 算法从设置了过期时间的键集合中删除最近最少使用的键值
- allkeys-random :从所有 key 随机删除
- volatile-random:从设置了过期时间的键的集合中随机删除
- allkeys-lfu :从所有键中删除使用频率最少的键
- volatile-lfu :从配置了过期时间的键中删除使用频率最少的键
-
缓存穿透:对不存在数据的大量访问直接落在了数据库上
利用布隆过滤器来确认数据是否可能存在于数据库中,若可能则查询数据库,更新布隆过滤器或刷新 KV 缓存
-
缓存击穿:热点 key 失效
-
缓存雪崩:大面积缓存失效