1. 缓存穿透
1.2 问题简述
缓存击穿就是用户请求数据在数据库对应查询结果为空时,对该结果不进行缓存,从而导致每次查询为空都会直接访问数据库
1.2 解决方法
将在数据库查询为 null 的 key 也缓存起来,设置一定的过期时间,这样只会在 key 失效的额时候访问数据库,可以减轻数据库压力
2. 缓存雪崩
2.2 问题简述
在同一时间内,大量 key 失效,导致对这些 key 的访问都落在数据库上,造成数据库的庞大压力
2.2 解决方法
随机 设置 key 的过期时间,使得 key 失效时间均匀分布,从而分散数据库压力
3. 缓存击穿
3.2 问题简述
频繁访问的热点数据失效,导致一时间大量的热点数据访问落在数据库上,可能导致数据库崩溃
3.2 解决方法
频繁访问的热点数据可以设置为永久不失效
后续更新java+redis+springboot实现代码