缓存雪崩
当缓存中的大量数据同时失效或过期时,会导致请求直接落到后端服务上,从而造成服务不可用的情况。
解决方案: 给缓存数据设置随机的过期时间,使用热点数据预加载、异步刷新等技术。
缓存穿透
当恶意用户请求不存在的缓存数据时,会直接访问后端服务,从而造成服务不可用的情况。
解决方案: 使用布隆过滤器等技术来过滤非法请求,对于不存在的数据设置空值缓存,缓存击穿的情况下设置短期内不再缓存该键值,等等。
缓存击穿
当某个热点数据失效或过期时,会导致大量请求直接落到后端服务上,从而造成服务不可用的情况。
解决方案: 使用分布式锁、热点数据预加载、异步刷新等技术。
缓存一致性
当多个客户端同时修改同一个缓存数据时,会导致数据不一致的情况。
解决方案: 使用分布式锁、乐观锁、悲观锁等技术来控制并发更新。
缓存容量不足
当缓存容量不足时,会导致新数据无法加入缓存,从而造成请求直接落到后端服务上。
解决方案: 使用LRU、LFU等策略淘汰缓存数据,使用分布式缓存来扩展缓存容量。