如何保持mysql和redis数据一致性?

1 缓存更新。在进行写操作时,先更新 MySQL 里的数据,再删除 Redis 里该数据对应的缓存。在读操作时,先从 Redis 缓存中获取数据,若没有则从 MySQL 查找,然后将查找到的数据写入 Redis 缓存中。

2 数据同步。可以使用程序或工具进行 MySQL 和 Redis 数据的同步。例如,使用 Binlog 和 Canal 进行 MySQL 数据的订阅和读取,并将订阅到的数据写入 Redis 缓存中。

3 双写。在进行写操作时,同时更新 MySQL 和 Redis 中的相应数据。这种方式保持了 MySQL 和 Redis 数据的强一致性,但可能会降低写操作的性能和增加系统的复杂度。

简单原理 :

1.canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议

2.mysql master收到dump请求,开始推送binary log给slave(也就是canal)

3.canal解析binary log对象(原始为byte流)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值