听说Redis都会遇到并发、雪崩等难题?我用10分钟就解决了( 四 )


2)读取binlog后分析  , 利用消息队列,推送更新各台的redis缓存数据 。
这样一旦MySQL中产生了新的写入、更新、删除等操作 , 就可以把binlog相关的消息推送至Redis , Redis再根据binlog中的记录 , 对Redis进行更新 。
其实这种机制 , 很类似MySQL的主从备份机制 , 因为MySQL的主备也是通过binlog来实现的数据一致性 。
这里可以结合使用canal(阿里的一款开源框架) , 通过该框架可以对MySQL的binlog进行订阅 , 而canal正是模仿了mysql的slave数据库的备份请求 , 使得Redis的数据更新达到了相同的效果 。
当然 , 这里的消息推送工具你也可以采用别的第三方:kafka、rabbitMQ等来实现推送更新Redis 。




推荐阅读