缓存和数据库双写不一致,怎么解决

缓存可以提升性能,缓解数据库压力,但是同时缓存也会出现「缓存和数据库数据不一致」的问题。当客户端发送一个数据修改的请求,我们不仅要修改数据库,还要一并操作(修改/删除)缓存。对数据库和缓存的操作又存在一个顺序的问题:到底是先操作数据库还是先操作缓存

一、缓存的作用

大部分面向公众的互联网系统,其并发请求数量与在线用户数量都是正相关的,而 MySQL 能够承担的并发读写量是有一定上限的,当系统的访问量超过一定程度的时候,纯 MySQL 就很难应付了。绝大多数互联网系统都是采用 MySQL+Redis 这对经典组合来解决高并发问题的。

Redis 作为 MySQL 的前置缓存,可以应对绝大部分查询请求,从而在很大程度上缓解 MySQL 并发请求的压力。

缓存可以提升性能,缓解数据库压力,但是同时缓存也会出现「缓存和数据库数据不一致」的问题。如果数据不一致,就会导致应用在缓存中读取的不是最新的数据,这显然是不能接受的。

二、缓存和数据库双写不一致,怎么解决

1、先更新缓存,再更新 DB

这个方案我们一般不考虑。原因是更新缓存成功,更新数据库出现异常了,

导致缓存数据与数据库数据完全不一致,而且很难察觉,因为缓存中的数据一直都存在。

2、先更新 DB,再更新缓存

这个方案也我们一般不考虑,原因跟第一个一样,数据库更新成功了,缓存更新失败,同样会出现数据不一致问题。

到这里可以看出,无论这两个操作的执行顺序谁先谁后,只要「第二步的操作」失败了,就会导致客户端读取到旧值。

我们继续分析,除了「第二步操作失败」的问题,还有什么场景会影响数据一致性:并发问题。

来源:https://blog.csdn.net/Zhuxiaoyu_91/article/details/127780117

延伸阅读

什么是PHP

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。

文章标题:缓存和数据库双写不一致,怎么解决,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/54047

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月7日
下一篇 2023年6月7日

相关推荐

  • 每日计划软件有什么

    每日计划软件有:1、有道云笔记;2、滴答清单;3、讯飞语记;4、千本笔记;5、暖暖手账;6、记事本;7、计划表。有道云笔记是一款多平台的记录工具,可以通过文档、扫描、语音、收藏等方式进行记录。 一、有道云笔记 有道云笔记是一款多平台的记录工具,可以通过文档、扫描、语音、收藏等方式进行记录。书本中的内…

    2023年4月21日
    1.1K00
  • 好用的oa软件

    开展论述,有效的OA软件凭借其功能性、灵活性与用户友好性,在提高工作效率、促进信息流通及加强团队合作方面起着至关重要的作用。1、提供多样化通信工具;2、具备高效的文档管理系统;3、支持任务和项目管理;4、易于定制和集成;5、确保数据安全性。提供多样化通信工具包括即时消息、邮件系统、会议调度以及视频会…

    2024年1月11日
    21300
  • LTC项目型公司如何管理

    LTC项目型公司的管理涉及几个核心要素:确立明确的项目管理流程、建立跨部门沟通机制、实施灵活的资源配置、关注项目财务管理,以及强化项目风险管理。在这些要素中,确立明确的项目管理流程尤为关键。一个结构化且清晰的项目管理流程能为项目的顺利实施提供坚实的基础,确保各项活动能够高效有序地开展。这包括但不限于…

    2024年4月10日
    6600
  • 如何看项目重点管理

    如何看待项目重点管理,在项目管理的广阔领域中,关键在于识别项目的优先级、分配资源以及持续监控进度。其中,识别项目的优先级尤为重要,因为它决定了项目资源的分配和各任务的执行顺序。正确的优先级设置不仅可以确保关键任务首先得到完成,还能有效避免资源浪费,保证项目按时完成。 一、识别项目的优先级 项目重点管…

    2024年4月10日
    6500
  • 除了编程还能学习什么

    实现个人职业发展的途径有诸多,除了编程,可以学习的方向有3个,包含财务管理、人际沟通及设计创意。 在这里,我们挑选财务管理进行深入探讨。掌握财务管理的知识不仅能够帮助个人更好地管理个人财富,而且对于职业发展同样具有重要意义。学习如何制作和理解财务报表、掌握预算编制和财务分析技能、以及学习投资原理,都…

    2024年4月26日
    500
  • devops是什么服务器

    DevOps不是一种服务器, 而是一套流程与方法论,旨在加强软件开发(DEVelopment)与IT运维(Operations)的协作,提升持续集成与快速部署的能力;3、重要的是,DevOps致力建立跨职能团队的文化,运用自动化工具链优化工作流程。 对于DevOps,可展开其引介出的持续集成(CI)…

    2024年3月26日
    7000
  • Excel中sumproduct函数和sumifs函数的区别

    Excel中sumproduct函数和sumifs函数的区别:1、可添加条件数不同;2、计算方法不同;3、可汇总范围量不同;4、灵活性不同;5、计算速度不同。可添加条件数不同是指sumifs函数可以同时添加多达127个条件,而sumproduct函数只能添加一个条件。 一、Excel中sumprod…

    2023年4月2日
    3.9K00
  • vscode为什么很难下载

    VSCode, 全称Visual Studio Code, 是一款非常流行的源代码编辑器,由微软开发。那么,为什么很难下载VSCode呢?主要原因包括但不限于网络限制、服务器压力、地区封锁、下载渠道的选择错误等。特别是网络限制问题,在某些国家或地区,对于国外服务器的访问可能会受到限制,这就导致了用户…

    2024年4月3日
    6700
  • 数据可视化的时候,前后端、数据库是什么关系

    前后端和数据库在数据可视化中是密不可分的。前端需要从后端获取数据并展示出来,而后端需要从数据库中获取数据并返回给前端。因此,前后端和数据库是构成数据可视化的三个基本组成部分。 前后端和数据库在数据可视化中是密不可分的。前端需要从后端获取数据并展示出来,而后端需要从数据库中获取数据并返回给前端。因此,…

    2023年5月31日
    86200
  • 为高音质保驾护航——回声消除篇

    大家好,我是来自网易云信的胡林艳。语音通信,在现在生活已经成为了大家绝大多数的沟通交流的方式,而通话语音的质量也是衡量每个厂商系统好坏的标志之一。在语音通信中,回声一直占据着影响音质的主要地位,它会带来种种影响,比如漏回声,产生杂音,处理人声断续,忽大忽小,丢字,失声等现象中,有一部分就是回声或者工…

    2022年3月16日
    1.4K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部