`

双写不一致

 
阅读更多

原创转载请注明出处:https://agilestyle.iteye.com/blog/2442900

 

先删缓存还是先更新数据库?

更新缓存的4中设计模式

  • Cache aside
  • Read through
  • Write through
  • Write behind caching

Cache aside

失效:应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存中。

命中:应用程序从cache中取数据,取到后返回。

更新:先把数据存到数据库中,成功后,再让缓存失效。

Read through 

Read through 套路就是在查询操作中更新缓存,也就是说,当缓存失效的时候(过期或LRU换出),Cache Aside是由调用方负责把数据加载入缓存,而Read Through则用缓存服务自己来加载,从而对应用方是透明的。

 

Write through(直写模式)

在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。


 

Write behind caching(回写模式)

在更新数据的时候,只更新缓存,不更新数据库,只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。


 

 

Reference

https://coolshell.cn/articles/17416.html

  • 大小: 316.8 KB
  • 大小: 35 KB
  • 大小: 55.3 KB
分享到:
评论

相关推荐

    高并发场景下的缓存+数据库双写不一致问题分析与解决方案设计.docx

    高并发场景下的缓存+数据库双写不一致问题分析与解决方案设计。 在高并发场景下,缓存和数据库的双写不一致问题是一个常见的问题。这种问题的出现是因为在高并发场景下,缓存和数据库的写操作可能会出现不一致的...

    面试官:Zookeeper怎么解决读写、双写并发不一致问题,以及共享锁的实现原理?.doc

    Zookeeper 解决读写、双写并发不一致问题,以及共享锁的实现原理 Zookeeper 是一个广泛使用的分布式协调服务,可以帮助应用程序在分布式环境中实现高可用性和高性能。今天,我们将讨论 Zookeeper 是如何解决读写、...

    eshop-inventory:解决数据库缓存双写不一致

    eshop-inventory解决数据库缓存双写不一致更新数据的时候,根据数据的唯一标识,将操作路由之后,发送到一个jvm内部的队列中读取数据的时候,如果发现数据不在缓存中,那么将重新读取数据+更新缓存的操作,根据唯一...

    4种常见的缓存问题及解决方案详解.docx

    然而,缓存的使用也伴随着一些常见的问题,如缓存穿透、缓存击穿、缓存雪崩以及双写不一致。以下是对这些问题及其解决方案的详细说明。 **缓存穿透** 缓存穿透是指用户频繁请求数据库中不存在的数据,导致每次请求...

    双写一致性设计方案-TCP模式/MQ模式

    本篇文章将深入探讨“双写一致性设计方案”,并分别分析TCP模式和MQ(Message Queue,消息队列)模式在MySQL主从同步中的应用。 首先,让我们了解MySQL的主从同步机制。这是数据库高可用架构的基础,它通过复制技术...

    数据库与缓存双写一致性问题1

    数据库和缓存双写一致性是分布式系统中的常见挑战,它涉及到如何在更新数据库的同时保持缓存的正确性。本文主要探讨两种常见的策略及其潜在的问题和解决方案。 首先,我们来看第一种策略,即“先删缓存,再更新...

    FPGA数据总线宽度不相等的双口RAM的设计.pdf

    在实际应用中,由于FPGA与微处理器等外围设备的总线宽度可能存在不匹配的情况,这就需要对双口RAM进行特别的设计以满足需求。 从提供的文件内容来看,文章的主题是关于在FPGA中实现数据总线宽度不等的双口RAM的设计...

    【Java 面试题】MySQL与Redis 如何保证双写一致性.pdf

    本文将详细介绍三种保证MySQL与Redis双写一致性的方案,并深入探讨每种方案的工作原理、优缺点及其适用场景。 #### 方案一:延时双删 **原理概述** 延时双删是一种常见的缓存一致性解决方案。其核心思想是在更新...

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

    另一种方法是“双写一致性”,通过分布式事务或两阶段提交(2PC)来确保两个存储系统的更新同步。在两阶段提交中,事务协调者会先询问所有参与者(这里是缓存和数据库)是否准备提交,得到肯定答复后再进行实际的...

    mysql+es实现双写方案代码

    需要注意的是,双写方案可能会遇到数据一致性问题,特别是如果Elasticsearch和MySQL的写入速度不同步。因此,在设计过程中要特别关注错误处理和重试机制,以确保数据的完整性和一致性。 总之,`sql-sync`提供的代码...

    分布式之数据库和缓存双写一致性方案解析.docx

    ### 分布式系统中数据库与缓存双写一致性解析 #### 一、引言 在分布式系统中,缓存作为一种高性能、高并发的数据存储技术,已经被广泛应用到各种业务场景之中。尤其是在读取高频数据时,缓存能够显著提高系统的...

    分布式之数据库和缓存双写一致性方案解析

    本文由以下三个部分组成1、讲解缓存更新策略2、对每种策略进行缺点分析3、针对缺点给出改进方案先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的...

    MySQL双主一致性架构优化

    总结起来,保证MySQL双主一致性需要综合运用多种策略,包括但不限于双主同步、避免主键冲突、业务端生成全局唯一ID、Shadow Master模式以及内网DNS探测延迟切换。这些技术手段都是为了在提升系统高可用性的同时,...

    springboot缓存一致性解决

    双写一致性模型在写入数据时同时更新数据库和缓存,读取时先尝试从缓存获取,如果不存在则从数据库读取并填充缓存。为确保写入一致性,可以使用异步消息队列来协调数据库和缓存的更新。 7. **缓存预热**: 应用...

    行业分类-设备装置-双写数据的方法和装置.zip

    在IT行业中,"双写数据的方法和装置"是一种常见的数据保护技术,主要应用于数据库系统、存储系统以及云计算环境中,以确保数据的高可用性和一致性。双写数据,顾名思义,是指将同一份数据同时写入两个不同的位置,...

    双口RAM读写程序

    3. **同步机制**:尽管双口RAM可以同时读写,但当两个端口需要访问相同的数据时,仍需确保数据一致性。这可能需要使用到某种形式的同步协议,如信号量、锁或其他同步原语,以防止数据冲突。 4. **地址映射**:STM32...

    运用双buffer操作控制ddr2的读写

    运用双buffer操作来控制ddr2读写,一般运用在读写速度不一致的情况下,如摄像头采集帧率和显示器显示帧率不一致导致的帧不同步,画面撕裂

    Redis集群HA架构+双写一致性解决方案、Nginx+Storm负载均衡策略、Hyst-shop-detail.zip

    双写一致性解决方案在分布式环境中是为了确保数据的一致性,避免在主从复制过程中出现数据丢失或冲突。一种常见的方法是基于Paxos或Raft等一致性算法,实现多节点间的共识。另一种方式是在主节点写入成功后,再向从...

Global site tag (gtag.js) - Google Analytics