缓存设计原则和对应概念
一、最近公司在进行架构重构,在使用redis作为缓存系统之后,添加了oscache作为无效缓存的使用。这里吧oscache作为无效缓存是
1、因为公司架构所有前端请求的数据都会先获取无效缓存,
2、如果设置redis为无效缓存,势必大大增加redis的访问压力;
二、所以这里考虑到缓存设计原则是;
1)添加无效缓存,防止缓存穿透,对于调用组合服务接口超时或系统其他异常的场景,需有重试机制;
2)缓存更新应设计成线程池,异步更新,更新时应悬锁控制并发;
3)缓存更新失败时,保留旧数据。
4)设置二级缓存
三、上面有两个概念
缓存穿透
什么是缓存穿透?
一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
缓存雪崩
什么是缓存雪崩?
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力。
浙公网安备 33010602011771号