13、Redis与Mysql数据双写一致性

Redis与Mysql数据双写一致性

1、 复习+面试题
先动Mysql,再动Redis,两害相衡取其轻,避免Redis业务key突然消失,多线程请求集火打满mysql
动,写操作,先更新数据库,在删除缓存。回写的时候使用双检加锁机制锁住mysql,只让一个线程回写Redis,完成数据一致性
面试题
我想MySQL有记录改动了(增删改写操作),立刻同步反应到Redis,该怎么做?
你怎么知道MySQL有改动?
在这里插入图片描述

2、canal
是什么?
主要用途是用于MySQL数据库增量日志数据的订阅、消费和解析,是阿里巴巴开发并开源的,采用Java语言开发
在这里插入图片描述
传统给MySQL主从复制工作原理
在这里插入图片描述
● 当master主服务器上的数据发生改变时,将其改变写入二进制事件日志文件中;
● slave从服务器会在一定时间间隔内对master主服务器上的二进制日志进行探测,探测其是否发生过改变,如果探测到master主服务器的二进制事件日志发生了改变,则开始一个I/O Thread请求master二进制事件日志
● 同时master主服务器为每个I/O Thread启动一个dump Thread,用于向其发送二进制事件日志;
● slave从服务器将接收到的二进制事件日志保存至自己本地的中断日志文件中;
● slave从服务器将启动SQL Thread从中断日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致;

canal工作原理
● canal模拟MySQl slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议
● MySQL master 收到dump请求,开始推送binary log给slave
● canal解析binary log对象(原始byte流)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

princeAladdin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值