说说MySQL数据如何同步到Redis缓存?

234 阅读1分钟

面试官:说说MySQL数据如何同步到Redis缓存?

大彬:嗯,有两种方案:

  1. 通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现。过程大致如下:
    • 在MySQL中对要操作的数据设置触发器Trigger,监听操作
    • 客户端向MySQL中写入数据时,触发器会被触发,触发之后调用MySQL的UDF函数
    • UDF函数可以把数据写入到Redis中,从而达到同步的效果
  2. 解析MySQL的binlog实现,将数据库中的数据同步到Redis。可以通过canal实现。

canal是阿里巴巴旗下的一款开源项目,基于数据库增量日志解析,提供增量数据订阅&消费。

-面试官:那你知道canal的原理吗?

-大彬:

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. mysql master收到dump请求,开始推送binary log给canal
  3. canal解析binary log对象(原始为byte流),将数据同步写入Redis。

-面试官:嗯,回去等通知吧

来自:MySQL数据如何同步到Redis?_哔哩哔哩_bilibili