缓存大并发问题处理
一.缓存雪崩
大量的key同时失效,在量请求同时请求数据库,在数据库撑不住压力时就会引起整个系统崩溃。
解决办法:
1.设置随机失效时间
2.设置key永久有效,同时设置定时任务或者用户执行异步清理缓存,不要同时清理大量缓存,最好有些时间间隔
二.缓存穿透
缓存和数据库中都找不到对应的key,每次请求都要查询数据库,这种请求多的话数据库也会撑不住压力。
解决办法:
1.接口校验,屏蔽不规范的key
2.当数据库没有数据时,设置key=null存入缓存,这样就不会频繁访问数据库
三.缓存击穿
热点key在失效期间被大并发用户请求,引起数据库压力瞬间增大
解决办法:
1.设置永不失效
2.在缓存失效访问数据时加互斥锁