缓存系统在现在的后台服务中是必不可少的,但缓存系统有很多方面的问题需要我们注意。
缓存穿透是指当查询一个值不在缓存中的时候,系统会去底层数据库查询,当有大量的流量都命中了缓存中不存在的key那么缓存的存在就起不到作用,底层DB可能会挂掉。如果存在缓存穿透那么这就是漏洞。
缓存雪崩是指缓存系统中的数据在同一时间过期,导致短时间内所有流量都打到底层存储,底层存储压力过大挂掉的现象
缓存击穿是指缓存中某一个 key 的访问量特别大,当这个 key 过期的时候,高并发的请求会同时去查询数据库,造成和缓存雪崩一样的结果。
缓存预热是指在系统上线前提前更新缓存系统中数据
除了缓存系统自带的过期失效策略外,我们也可以根据不同业务设置不同的缓存更新策略。
当访问量剧增、相关服务出现问题的时候,我们需要保证服务的可用性,当时可以降低服务的正确性。比如我们做一个商城,我们可以定时把商品列表数据写入缓存系统,当商品列表查询服务出现问题的时候,我们可以把查询接口切换到缓存系统,这样虽然我们无法保证商品的数据的完全正确,但是可以保证我们的系统仍然可以“正常运行”
非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。
功能待开通!