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流)