FWQ
浅谈Redis跟MySQL的双写问题解决方案
浅谈Redis跟MySQL的双写问题解决方案 0浏览 收藏 来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《浅谈Redis跟MySQL的双写问题解决方案》,介绍一下RedisMySQL、双写,希望对大家的知识积累有所帮助,助力实战开发! 项目中有遇到这个问题,跟MySQL中的数据不一致,研究一番发现这里面细节并不简单,特此记录一下。 写在前面 严格意义上任何非原子操作都不可能保证一致性,除非用阻塞读写实现强一致性,所以缓存架构我们追求的目标是最终一致性。缓存就是通过牺牲强一致性来提高性能的。 这是由CAP理论决定的。缓存系统适用的场景就是非强一致性的场景,它属于CAP中的AP。 以下3 种缓存读写策略各有优劣,不存在最佳。 三种读写缓存策略 Cache-Aside Pattern(旁路缓存模式) Cache-Aside Pattern,即旁路缓存模式,它的提出是为了尽可能地解决缓存与数据库的数据不一致问题。 读 :从缓存读取数据,读到直接返回。如果读取不到的话,从数据库加载,写入缓存后,再返回响应。写:更新的时候,先更新数据库,然后再删除缓存。 Read-Through/Write-Through(读写穿透) Read/Write Through Pattern 中服务端把 cache 视为主要数据存储,从中读取数据并将数据写入其中。cache 服务负责将此数据读取和写入 DB,从而减轻了应用程序的职责。 因为我们经常使用的分布式缓存 Redis…