缓存刷新:应先更新数据库后淘汰缓存,如果更新数据库成功,但淘汰缓存失败,则回滚事务操作。
缓存穿透:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,会导致数据库压力过大。解决途径:接口层增加校验;从缓存和数据库都取不到数据则添加对应的参数到缓存,禁止一定时间内的请求。
缓存击穿:缓存击穿是指缓存中没有但数据库中有的数据,一般是缓存时间到期,这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。解决途径:设置热点数据永远不过期;加互斥锁。
缓存雪崩:缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至宕机。解决途径:缓存数据的过期时间设置随机;如果缓存数据库是分布式部署,将热点数据均匀分布在不同的数据库中;设置热点数据永远不过期。