缓存设计原则和对应概念

一、最近公司在进行架构重构,在使用redis作为缓存系统之后,添加了oscache作为无效缓存的使用。这里吧oscache作为无效缓存是

1、因为公司架构所有前端请求的数据都会先获取无效缓存,

2、如果设置redis为无效缓存,势必大大增加redis的访问压力;

二、所以这里考虑到缓存设计原则是;

 

1)添加无效缓存,防止缓存穿透,对于调用组合服务接口超时或系统其他异常场景,需有重试机制

 

2缓存更新应设计成线程池异步更新,更新时应悬锁控制并发

 

3缓存更新失败,保留旧数据。

4)设置二级缓存

三、上面有两个概念

缓存穿透

什么是缓存穿透?

一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。

缓存雪崩

什么是缓存雪崩?

当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力。

 

posted @ 2017-06-03 17:02  Jack.London  阅读(1354)  评论(0)    收藏  举报