Redis&Mysql同步

1. canal

Canal,阿里巴巴 MySQL binlog 增量订阅&消费组件,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。

在这里插入图片描述
首先了解一下mysql主备复制原理
  (1)master主库将改变记录,发送到二进制文件(binary log)中
  (2)slave从库向mysql Master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log)
  (3)slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库

在这里插入图片描述
Canal 工作原理:

  1. canal 模拟 mysql slave 的交互协议,伪装自己为 mysql slave,向 mysql master 发送 dump 协议
  2. mysql master 收到 dump 请求,开始推送 binary log 给 slave(也就是 canal)
  3. canal 解析 binary log对象(原始为 byte 流)

Canal 包含两个组成部分:服务端和客户端。服务端负责连接至不同的 MySQL 实例,并为每个实例维护一个事件消息队列;客户端则可以订阅这些队列中的数据变更事件,处理并存储到数据仓库中。

2. canal安装

使用Canal实现redis和mysql的同步

Canal 详解 Mysql与Redis数据同步 解决方案

3. 客户端代码

Canal 实现Mysql Redis数据同步

如此以来即可实现:mysql的数据类实时同步至redis
当然,redis的数据也可以同步至mysql – 在写入redis时也可以异步去更新mysql的数据

通常是 读redis写mysql
所以在首先读取redis数据时若发现没有对应的key,则可以再到mysql中读取;
在首先写入mysql时可以使用以上方案同步至redis;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值