如何保证缓存与数据库双写时的数据一致性?

参与13

4同行回答

youki2008youki2008系统架构师DDT
可以采用以下三种方式: 1.先更新缓存,再写数据库 2.先删除缓存,再更新数据库 3.先更新数据库,再更新缓存显示全部

可以采用以下三种方式:
1.先更新缓存,再写数据库
2.先删除缓存,再更新数据库
 3.先更新数据库,再更新缓存

收起
互联网服务 · 2020-04-27
浏览1897
AmygoAmygoDBA分布式事务数据库
如何保证缓存与数据库双写时的数据一致性?业务系统读数据操作的任何时候都是先读缓存(若缓存数据失效或不存在,则直接读数据库且把数据加入缓存中),及明确下需求为“缓存和持久化双写一般都是异步方式,也即如何确保异步情况下的数据一致性”,从两种业务需求的情况下回答此问题,...显示全部

如何保证缓存与数据库双写时的数据一致性?

业务系统读数据操作的任何时候都是先读缓存(若缓存数据失效或不存在,则直接读数据库且把数据加入缓存中),及明确下需求为“缓存和持久化双写一般都是异步方式,也即如何确保异步情况下的数据一致性”,从两种业务需求的情况下回答此问题,分别如下:

一、优先写缓存保服务响应时间

(1)业务系统先修改缓存中的数据,以Redis缓存为例

(2)数据持久化则可订阅Redis的变更,把修改操作更新到数据库中

二、优先写数据库保数据一致性

(1)业务系统第一个步骤:先标记缓存中对应KEY的数据失效

(2)业务系统第二个步骤:修改数据库中的数据

http://www.talkwithtrend.com/Article/247261

收起
银行 · 2020-02-24
浏览2199
lxuelxue数据库管理员某互联网公司
一般来说,就是如果你的系统不是严格要求缓存 + 数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串行化,串到一个内存队列里去,这样就可以保证一定不会出现不一致的情况 串行化之后,就会导致系统的吞吐量会大幅度的降低,用比正...显示全部

一般来说,就是如果你的系统不是严格要求缓存 + 数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串行化,串到一个内存队列里去,这样就可以保证一定不会出现不一致的情况

串行化之后,就会导致系统的吞吐量会大幅度的降低,用比正常情况下多几倍的机器去支撑线上的一个请求。

收起
互联网服务 · 2020-02-24
浏览2386
Luga LeeLuga Lee系统架构师None
异步更新缓存、更新后延迟删与延迟双删 均可实现显示全部

异步更新缓存、更新后延迟删与延迟双删 均可实现

收起
互联网服务 · 2020-02-22
浏览2230

提问者

andyfa
软件开发工程师某证券
擅长领域: 数据库大数据服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-02-21
  • 关注会员:5 人
  • 问题浏览:4793
  • 最近回答:2020-04-27
  • X社区推广