缓存穿透:故意请求缓存和服务器都不存在的数据,通过不断直接访问服务器数据库来击垮数据库。
解决方法:
1)互斥锁,缓存失效的时候,得到锁才能请求数据库。没得到锁,则休眠一段时间重试。
2)数据库没查到数据,也给缓存写入一个空值。
缓存雪崩:缓冲大面积失效的同时接收到大量请求导致数据库访问缓慢甚至奔溃的异常。
解决方法:
1)随机设置缓冲国企时间,减少缓存同时失效数量。
2)双缓存。
3)互斥锁。没必要,因为这样会影响性能。
缓存击穿:高并发访问数据库某个热点数据导致数据库异常。
解决方法
可以将热点数据的缓存失效时间设置为永久。