1.1 设置有效期
给缓存设置有效期,到期后自动删除。再次查询时可以更新优势:简单,方便缺点:时效性差,缓存过期之前可能不一致场景:更新频率低,时效性要求比较低的业务1.2 同步双写
在修改数据库的同时,直接修改缓存优势:有代码侵入,缓存与数据库强一致性缺点:代码进入,耦合性高场景:对一致性,失效性要求较高的缓存数据1.3 异步通知
修改数据库时发送事件通知,相关服务监听到后修改缓存数据优势:低耦合,可以同时通知多个缓存服务缺点:时效性一把,可能存在缓存不一致问题场景:时效性一般,有多个服务需要同步 2. 基于Canal的异步通知 是阿里旗下的一款开源项目,基于java开发基于数据库增量日志解析,提供增量数据订阅和消费基于mysql的主从备份的思想2.1 mysql主从复制
2.2 canal 工作原理
canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dump 请求, 开始推送 binary log 给 slave (即 canal )canal 解析 binary log 对象(原始为 byte 流)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持七叶笔记。