实现缓存最终一致性的二种方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwl2014100338/article/details/81606542

实现缓存最终一致性的二种方案

1、重客户端

从写入缓存到读缓存两方面来解析说明如何保证数据一致性

  • 应用同时更新数据库和缓存
  • 如果数据库更新成功,则开始更新缓存,否则如果数据库更新失败,则整个更新过程失败。
  • 判断更新缓存是否成功,如果成功则返回
  • 如果缓存没有更新成功,则将数据发到MQ中
  • 应用监控MQ通道,收到消息后继续更新Redis

2、客户端数据库与缓存解耦
  • 应用直接写数据到数据库中。
  • 数据库更新binlog日志。
  • 利用Canal中间件读取binlog日志。
  • Canal借助于限流组件按频率将数据发到MQ中。
  • 应用监控MQ通道,将MQ的数据更新到Redis缓存中

猜你喜欢

转载自blog.csdn.net/lwl2014100338/article/details/81606542