Category: Distributed Middleware

[转]缓存构架经验总结 – 5.3. 缓存,并发更新的大坑? 0

[转]缓存构架经验总结 – 5.3. 缓存,并发更新的大坑?

《 4. 缓存,究竟是淘汰,还是修改?》发出后,有朋友提到,高并发的情况下,缓存的更新可能存在问题,今天简单聊聊这个话题。   业务场景: (1)调用第三方服务,例如微信,一般会分配一个token,每次访问接口需要带上这个token; (2)这个token是有有效期的,当token过期时,需要去重新认证申请; (3)也可以在token过期前重新申请,但此时旧token会失效。

[转]缓存构架经验总结 – 5.2. Cache Aside Pattern 0

[转]缓存构架经验总结 – 5.2. Cache Aside Pattern

在《5.1 究竟先操作缓存,还是数据库?》,有同学在评论提出,相关方案违背了“Cache Aside Pattern”的原则,故今天聊一聊Cache Aside Pattern。 另外,在讨论技术方案时,尽量不说: “你是错的,应该怎么样” “facebook不是这样,所以你是错的” 画外音:凭什么facebook就是真理?它的方案只是适合它的业务而已。 说明适用场景,说明来龙去脉,说明前因后果,比具体使用什么方案更重要。

[转]缓存构架经验总结 – 5.1. 究竟先操作缓存,还是数据库? 0

[转]缓存构架经验总结 – 5.1. 究竟先操作缓存,还是数据库?

缓存存储,也是数据的冗余。 (1)数据库访问数据,磁盘IO,慢; (2)缓存里访问数据,存操作,快; (3)数据库里的热数据,可在缓存冗余一份; (4)先访问缓存,如果命中,能大大的提升访问速度,降低数据库压力; 这些,是缓存的核心读加速原理。

[转]缓存构架经验总结 – 4. 缓存,究竟是淘汰,还是修改? 0

[转]缓存构架经验总结 – 4. 缓存,究竟是淘汰,还是修改?

允许cache miss的场景,不管是memcache还是redis,当被缓存的内容变化时,是改修改缓存,还是淘汰缓存?这是今天将要讨论的话题。 问:KV缓存都缓存了一些什么数据? 答: (1)朴素类型的数据,例如:int (2)序列化后的对象,例如:User实体,本质是binary (3)文本数据,例如:json或者html (4)…

[转]缓存构架经验总结 – 3.1. 服务通过缓存传递数据,绝不推荐 0

[转]缓存构架经验总结 – 3.1. 服务通过缓存传递数据,绝不推荐

《服务通过缓存传递数据,是否可行》一文引发一个服务之间“通过缓存传递数据”设计合理性的讨论。 如上图: service-A将数据放入cache service-B从cache里读取数据   这种架构设计好还是不好,网友进行了激烈的讨论,感兴趣的同学可以看下《服务通过缓存传递数据,是否可行》的评论,看到这么多互联网技术人对一个技术方案问题进行思考与探讨,很是开心。这里,分享下个人的观点。

[转]缓存构架经验总结 – 3. 缓存,你真的用对了么? 0

[转]缓存构架经验总结 – 3. 缓存,你真的用对了么?

缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。   有架构师说“缓存是万金油,哪里有问题,加个缓存,就能优化”,缓存的滥用,可能会导致一些错误用法。 缓存,你真的用对了么?

[转]缓存构架经验总结 – 1. 进程内缓存,究竟怎么玩? 0

[转]缓存构架经验总结 – 1. 进程内缓存,究竟怎么玩?

除了常见的redis/memcache等进程外缓存服务,缓存还有一种常见的玩法,进程内缓存。 什么是进程内缓存? 答:将一些数据缓存在站点,或者服务的进程内,这就是进程内缓存。 进程内缓存的实现载体,最简单的,可以是一个带锁的Map。又或者,可以使用第三方库,例如leveldb。