版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwl2014100338/article/details/81606542
实现缓存最终一致性的二种方案
1、重客户端
从写入缓存到读缓存两方面来解析说明如何保证数据一致性
- 应用同时更新数据库和缓存
- 如果数据库更新成功,则开始更新缓存,否则如果数据库更新失败,则整个更新过程失败。
- 判断更新缓存是否成功,如果成功则返回
- 如果缓存没有更新成功,则将数据发到MQ中
- 应用监控MQ通道,收到消息后继续更新Redis
2、客户端数据库与缓存解耦
- 应用直接写数据到数据库中。
- 数据库更新binlog日志。
- 利用Canal中间件读取binlog日志。
- Canal借助于限流组件按频率将数据发到MQ中。
- 应用监控MQ通道,将MQ的数据更新到Redis缓存中