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

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

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

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

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

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

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

cache aside模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

先更新DB再失效缓存问题

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

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

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

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

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

read/write through模式

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

read through模式

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

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

write through模式

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

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

write behind caching模式

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

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

几种模式对

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

标签:
  • 热门焦点
  • MIX Fold3包装盒泄露 新机本月登场

    MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • Flowable工作流引擎的科普与实践

    Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 使用AIGC工具提升安全工作效率

    使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 网红炒股不为了赚钱,那就是耍流氓!

    网红炒股不为了赚钱,那就是耍流氓!

    来源:首席商业评论6月26日高调宣布入市,网络名嘴大v胡锡进居然进军了股市。在一次财经媒体峰会上,几个财经圈媒体大佬就“胡锡进炒股是否知道认真报道”展开讨论。有
  • 英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    据10 月 31 日消息报道,英特尔高级副总裁兼加速计算系统和图形事业部总经理 表示,Xe-HP“ Arctic Sound” 系列服务器 GPU 已经应用于 oneAPI devcloud 云服
  • 中关村论坛11月25日开幕,15位诺奖级大咖将发表演讲

    中关村论坛11月25日开幕,15位诺奖级大咖将发表演讲

    11月18日,记者从2022中关村论坛新闻发布会上获悉,中关村论坛将于11月25至30日在京举行。本届中关村论坛由科学技术部、国家发展改革委、工业和信息化部、国务
Top
Baidu
map