• 翎逸
    2018-05-10
    感觉更多的是不是应该说下缓存的监控,雪崩,缓存和数据库的一致性,以及热点缓存处理等一些场景的处理,这样会觉得更深入一些
     2
     27
  • Black
    2018-05-10
    这篇的内容有大部分是跟之前博客上的一篇 缓存更新的套路 重复了

    作者回复: 是的。这是为了整个系列的完整。

    
     5
  • W_T
    2018-05-10
    Read/Write Through 模式中对数据库的操作一定要交给交给缓存代理么,如果是这样就会带来两个问题:
    1. 需要在缓存服务中实现数据库操作的代码,我从来没有这么做过,也不清楚目前主流缓存是否支持这样的操作。
    2. 缓存服务与数据库之间建立了依赖。
    我在工作中更常见的做法是由应用服务操作缓存以及数据库,这样的话感觉就跟前面的cache aside模式很像了。
    可能是我对Read/Write Through模式理解不深,说错的地方还请老师指正
     1
     4
  • river
    2018-05-13
    Cache aside 更新数据库 然后失效缓存,在读很高的情况下,会不会相当于缓存被击穿?

    作者回复: 怎么会呢?

    
     3
  • dfuru
    2020-01-13
    LRU 的锁竞争, 有没有什么解决方法?谢谢
    
     2
  • shawn
    2018-12-12
    你好,我看了“架构之路”的公众号,
    https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=404202261&idx=1&sn=1b8254ba5013952923bdc21e0579108e&scene=21#wechat_redirect

    这里说了大部分场景是建议 先 “缓存失效 -> 再更新数据”。

    比如:先写数据再淘汰缓存会有如下情况:
    “假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失败,则会出现DB中是新数据,Cache中是旧数据,数据不一致【如上图:db中是新数据,cache中是旧数据】。”

    我想听听你的看法。
    展开
     2
     2
  • MarksGui
    2018-06-01
    皓哥,对于很多需要统计的数据或者筛选条件复杂的怎么利用缓存了?
    
     2
  • river
    2018-05-14
    Cache aside 更新数据库 然后失效缓存。失效时读不到缓存,不是会打到数据库的流量很高?
     1
     1
  • FF
    2018-05-11
    write through 这种模式,如果没有命中缓存更新数据库后返回,后面缓存谁来更新?这种更新想想好像很复杂
    
     1
  • Richie
    2020-01-15
    如果对比 Cache Aside 和 Read / Write Through 两者的流程图,会发现查询的时候基本是一样的,只有更新操作有点差别。但其实他们最大的区别不是在查询和更新流程上,而是前者需要在应用中去管理缓存的命中、失效和更新,而后者则由后端存储去控制命中、失效和更新策略,对应用来说更简单了。

    当然简单也是有代价的,这就意味着所有的数据都会被缓存了,而且都是按照相同的缓存策略。当然也可以通过暴露参数给应用去提供更多的灵活性,但这样事情就变得复杂了。
    
    
  • 知行合一
    2020-01-11
    三大缓存设计模式,cache aside,read/write through,write behind cache;缓存是以空间换时间,牺牲了强一致性,带来高性能和可用性。缓存分片希望也能分析分析
    
    
  • 文刂 氵共 超
    2020-01-06
    坚持学习,学习笔记 https://mubu.com/colla/o4SSnpN4B0
    
    
  • 陈华
    2019-07-10
    大家缓存一般怎么用的啊。 我这里有一个疑问。

    比如我有一个组织机构表, 然后我有好几个针对组织机构表的查询方法, 然后我spring boot 直接对这些方法进行缓存。

    那么问题是:一旦我更新了某个机构的信息。 我想这个时候应该对上述多个方法的缓存都做失效处理。
    大家一般是怎么做的啊?,
    首先spring boot 的cache是自动根据所有参数信息来生成的key, 我更新机构信息的时候,都不知道应该让那些key失效。还有即使知道了这些key的信息, 那程序上我得一直维护一个  缓存keys 和 update 方法之间的映射?那不得在所有缓存和需要更新的方法加一层aop,动态维护这个映射关系?,
    展开
     1
    
  • 陈华
    2019-07-10
    大家缓存一般怎么用的啊。 我这里有一个疑问。

    比如我有一个组织机构表, 然后我又好几个正对组织机构表的查询方法, 然后我spring boot 直接对这些方法进行缓存。

    那么问题是:一旦我更新了某个机构的信息。 我想这个时候应该对上述多个方法的缓存都做失效处理。
    关键是怎么做啊?,
    首先spring boot 的cache是自动根据所有参数信息来生成的key, 我更新机构信息的时候,都不知道应该让那些key失效。还有即使知道了这些key的信息, 那程序上我得一直维护一个 缓存keys 和 update 方法之间的映射?,
    展开
    
    
  • 黄绳霖
    2019-07-03
    Read/Write Through怎么避免并发造成的脏数据,难道要在数据服务上加锁吗?
    
    
  • edisonhuang
    2019-06-14
    缓存是一个提高系统性能的关键模块,通常一个系统的性能瓶颈会出现在数据库,而数据库增删改查的操作里,涉及到写的操作是带来性能瓶颈的地方。通常大多数的系统操作都是读多写少,写的过程因为要保证数据的一致性,因此在写的过程需要加锁,没有缓存会带来异能的极大损耗。
    缓存的实现分三种方式,cache aside,read write through,write back。缓存的替换算法一般是LRU替换算法,lru在存取过程中要加锁。
    
    
  • ~L.yy、
    2018-09-01
    数据在本地做了缓存,这些数据由下游的一组服务提供,当缓存过期时,将会穿透到下游去取数据。若下游的服务出现波动,将导致缓存的更新时间变长,在这个区间里的请求将全部会穿透,可能会导致服务过载。请问下老师有没有好的方式优化下这个场景
    
    
  • A圆规
    2018-06-01
    Cache aside 需要处理并发读问题,缓存失效时多个读会打到数据库
    
    
  • 坤
    2018-05-10
    陈皓老师好,redis 分片热点问题,有没有什么好的解决方案?

    作者回复: 建数据索引服务

    
    
我们在线,来聊聊吧