1.缓存穿透
查询1条记录--->redis--->存在--->返回
查询1条记录--->redis--->不存在--->数据库--->redis--->返回
穿透:
同时查询1000000条不存在的记录--->redis--->不存在--->数据库超载
解决方案:
数据不存在记录也缓存到redis,并设置过期时间
2.缓存雪崩
1.redis服务器宕机,所有请求直接到数据库
2.批量数据的key同时失效
解决方案:限流(点对---》key同时失效)
3.缓存击穿
1.查询--->redis--->不存在--->数据库--->存在--->返回
击穿:
批量同时查询同一记录---> redis--->不存在--->批量请求数据库(过载)
解决方案:
加互斥锁---> :同一记录,只请求数据库一次,返回给redis,后面的批量请求从redis取数据