• 王磊
    2019-10-18
    你好,对于缓存的设计讲述的很详细,也很接地气,容易落地,但是好像并没有说到多级缓存的策略,多级如何设计,过期策略又要如何设计,希望大牛可以讲讲

    作者回复: 这位同学你问的问题很专业,也很感谢你的支持。多级设计和过期策略在视频也有提到,但可能由于时间的限制,没有讲的太细。我简单的补充下,多级可以设计二层或者三层策略,不同场景采用不同的策略,主要看你数据库是否可以抗住缓存穿透可能造成的影响,如果有风险,建议二层,使用缓存全量存储。过期策略在不同的层可以有所不同,比如内存层可以根据对最后访问和最久访问的数据进行过期,REDIS层可以根据存储时间设置过期,也可以自己实现过期策略。其原则,一是数据库不是用来扛量的,做好防护;二是缓存设计好存储策略,避免大KEY和热KEY。

     1
     11
  • Lt.hanyu
    2019-11-01
    松然老师这种从实践中来的技术才是经得住考验的。
    个人在工作中也有如下思考:

    binlog的方式更强调的是执行结果。毕竟已经脱离应用层面而且主库已经落库完成;而mq更趋向于事件驱动的方式。发起一个写入事件,触发后续操作。

    binlog的顺序消费有好有坏。好就是顺序,通过消费的顺序性与单点性保证了业务的顺序性,而坏就是效率低下与单点的高可用性。

    最后任何主动缓存都是必须有后期自愈检核的。毕竟缓存与数据库不能用事务保证实时一致性,我们就必须用补偿来实现最终一致性。而增量补偿+有条件的全量补偿基本就能万无一失。不一致的时间长短这就要看系统的容忍度。

    缓存技术应用分场景,缓存数据使用分冷热。技术从没有好坏,如张老师说的,只需用在合适的地方。

    感谢松然老师的分享
    展开

    作者回复: 非常感谢这位同学的支持和鼓励,让我备受鼓舞,让我觉得做这次分享是非常有意义的。从你留言中的笔记来看,你一定是一个善于总结和学习的人,这一点非常可贵,希望你能继续坚持,我从2013年开始总结写博客,一点点努力到今天,与你共勉,共同加油。

    
     5
  • gu
    2019-10-17
    从工作上的实际问题,出发解决。点赞
    
     4
  • 小脚丫
    2019-10-21
    简明扼要,真正的解决问题,真正的实践!
    
     3
  • 海水
    2019-10-20
    分库分表的情况 使用binlog方案怎么处理?

    作者回复: 这位同学你问的问题真的非常好,这的确是一种复杂的场景。我觉得这个问题的关键点在于你异构缓存的存储策略,缓存是否采用与数据库相同的分库分表策略,由多个缓存对应多个数据库;还是数据聚合成一份存储,由一个缓存对应多个数据库。binlog是监听数据库粒度的,通过mq获取到binlog后,采用storm或flink等,你可以实现场景需要的缓存存储策略。

    
     3