缓存大并发问题处理

一.缓存雪崩

大量的key同时失效,在量请求同时请求数据库,在数据库撑不住压力时就会引起整个系统崩溃。

解决办法:

1.设置随机失效时间

2.设置key永久有效,同时设置定时任务或者用户执行异步清理缓存,不要同时清理大量缓存,最好有些时间间隔

二.缓存穿透

缓存和数据库中都找不到对应的key,每次请求都要查询数据库,这种请求多的话数据库也会撑不住压力。

解决办法:

1.接口校验,屏蔽不规范的key

2.当数据库没有数据时,设置key=null存入缓存,这样就不会频繁访问数据库

三.缓存击穿

热点key在失效期间被大并发用户请求,引起数据库压力瞬间增大

解决办法:

1.设置永不失效

2.在缓存失效访问数据时加互斥锁

 

posted @ 2020-06-12 19:01  guoyinglin  阅读(320)  评论(0编辑  收藏  举报