当前位置:首页 > 科技  > 软件

高并发缓存策略大揭秘:面试必备的缓存更新模式解析

来源: 责编: 时间:2024-03-18 09:42:30 251观看
导读在高并发场景中,缓存能抵挡大量数据库查询,减少数据库压力,对于缓存更新通常有以下几种模式可以选择:• cache aside• read/write through• write behind cachingcache aside模式Cache-aside模式是一种常用的用于管理缓

在高并发场景中,缓存能抵挡大量数据库查询,减少数据库压力,对于缓存更新通常有以下几种模式可以选择:FAO28资讯网——每日最新资讯28at.com

• cache asideFAO28资讯网——每日最新资讯28at.com

• read/write throughFAO28资讯网——每日最新资讯28at.com

• write behind cachingFAO28资讯网——每日最新资讯28at.com

cache aside模式

Cache-aside模式是一种常用的用于管理缓存的模式。它用于确保缓存与底层数据源之间的数据一致性。以下是cache-aside模式的工作原理:FAO28资讯网——每日最新资讯28at.com

图片图片FAO28资讯网——每日最新资讯28at.com

1. 从缓存读取:当有读取操作请求时,应用程序首先检查缓存中是否存在数据。如果在缓存中找到了数据,则将其返回给调用者,避免了访问底层数据源的需要。FAO28资讯网——每日最新资讯28at.com

2. 缓存未命中:如果在缓存中未找到数据,则表示缓存未命中。在这种情况下,应用程序从底层数据源检索数据,并将检索到的数据填充到缓存中。FAO28资讯网——每日最新资讯28at.com

3. 更新数据:当对数据执行写入或更新操作时,应用程序首先更新底层数据源中的数据。然后,清除缓存中的数据,以确保下一次读取从数据源中检索到更新后的数据。FAO28资讯网——每日最新资讯28at.com

通常写缓存和写数据库是两个独立的事务,选择先更新缓存还是先更新数据库都有可能产生数据不一致的情况。FAO28资讯网——每日最新资讯28at.com

先删缓存,再更新数据库的问题

假设有两个请求A、B。FAO28资讯网——每日最新资讯28at.com

• 请求A先删除缓存,此时还未更新数据库FAO28资讯网——每日最新资讯28at.com

• 请求B查询缓存未命中,然后查询数据库,查出旧数据写入缓存FAO28资讯网——每日最新资讯28at.com

• 请求A继续将数据写入数据库FAO28资讯网——每日最新资讯28at.com

• 此时缓存与数据库中的数据出现了不一致的情况FAO28资讯网——每日最新资讯28at.com

FAO28资讯网——每日最新资讯28at.com

将缓存更新不做删除的问题

• 请求A先更新了数据库FAO28资讯网——每日最新资讯28at.com

• 请求B更新了数据库,并更新了缓存FAO28资讯网——每日最新资讯28at.com

• 请求A最后更新缓存,此时请求A的数据是脏数据。FAO28资讯网——每日最新资讯28at.com

FAO28资讯网——每日最新资讯28at.com

先更新DB再失效缓存问题

先更新DB,再失效缓存也会出现问题。FAO28资讯网——每日最新资讯28at.com

• 请求A读取缓存未命中,查询数据库成功查到数据FAO28资讯网——每日最新资讯28at.com

• 请求B进来更新数据库成功,并删除缓存数据FAO28资讯网——每日最新资讯28at.com

• 请求A将查询的数据写入到缓存中,此时请求A写入缓存的数据已经是脏数据FAO28资讯网——每日最新资讯28at.com

FAO28资讯网——每日最新资讯28at.com

read/write through模式

cache aside模式需要应用方维护缓存的读写,对数据和缓存的维护设计侵入代码,代码复杂性增加。read/write through模式弥补了这一问题,调用方无需管理缓存和数据库调用,通过抽象缓存管理组件维护缓存和数据库的读写,解耦业务代码。FAO28资讯网——每日最新资讯28at.com

read through模式

当客户端请求一个数据时,如果缓存中不存在该项(缓存未命中),缓存系统会自动从后端存储中加载数据,然后将其添加到缓存中,并返回给客户端。对于后续的相同请求,数据则直接从缓存中获取,直到缓存过期或被淘汰。FAO28资讯网——每日最新资讯28at.com

图片图片FAO28资讯网——每日最新资讯28at.com

write through模式

在write-through模式中,当客户端更新一个数据项时,缓存系统会同时更新缓存和后端存储。这意味着所有的写操作都会同步地写入缓存和存储,确保二者的数据一致性。FAO28资讯网——每日最新资讯28at.com

图片图片FAO28资讯网——每日最新资讯28at.com

write behind caching模式

Write Behind模式和Write Through模式整个架构是一样的,核心在于write through在缓存数据库中的更新是同步的,而Write Behind是异步的。FAO28资讯网——每日最新资讯28at.com

每次的请求写都是直接更新缓存然后就成功返回,并没有同步把数据更新到数据库。而把更新到数据库的过程称为flush,触发flush的条件可自定义,如定时或达到一定容量阈值时进行flush操作。并且可以实现批量写,合并写等策略,也有效减少了更新数据的频率,这种模式最大的好处就是读写响应非常快,吞吐量也会明显提升。这种模式也有其他的问题,比如数据不是强一致性的,因为把最新的数据放在缓存里,如果缓存在flush到数据库之前宕机了就会丢失数据,另外实现也比较复杂。FAO28资讯网——每日最新资讯28at.com

几种模式对

模式FAO28资讯网——每日最新资讯28at.com

优点FAO28资讯网——每日最新资讯28at.com

缺点FAO28资讯网——每日最新资讯28at.com

Cache AsideFAO28资讯网——每日最新资讯28at.com

实现比较简单FAO28资讯网——每日最新资讯28at.com

需要应用程序负责缓存的读取和写入操作,代码侵入较大FAO28资讯网——每日最新资讯28at.com

Read/Write ThroughFAO28资讯网——每日最新资讯28at.com

引入缓存管理组件,缓存和数据库的维护对应用程序透明;应用代码入侵小,逻辑更清晰FAO28资讯网——每日最新资讯28at.com

引入缓存管理组件,实现更复杂FAO28资讯网——每日最新资讯28at.com

Write Behind CachingFAO28资讯网——每日最新资讯28at.com

读写直接和缓存交互,异步批量更新数据FAO28资讯网——每日最新资讯28at.com


FAO28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-76545-0.html高并发缓存策略大揭秘:面试必备的缓存更新模式解析

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 垃圾收集器的秘密:深入理解JVM性能调优

下一篇: 2024年最具潜力的十大编程语言:引领未来技术潮流

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top