IT袋

当前位置:主页 > 经验教程 > 建站编程 >

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

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

时间:2023-11-22 12:47:18 来源:IT袋 作者:马勇
导读:如何保证缓存与数据库的双写一致性,小编为网友们解答如何保证缓存与数据库的双写一致性方面的内容,如有不对的地方欢迎指正! 思考:redis作为缓存,mysql的数据如何与redis进行同步?(双写一致性问题) 注

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

小编为网友们解答如何保证缓存与数据库的双写一致性方面的内容,如有不对的地方欢迎指正!

思考:redis作为缓存,mysql的数据如何与redis进行同步?(双写一致性问题)

注意在回答这个问题的时候一定先介绍业务背景前提业务背景大致可以分为两个:

  • 数据一致性要求高
  • 数据允许延迟一致 接下来我们就从这两方面进行介绍。

1. 双写一致

双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致

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

上图分为两个流程:

  • 读操作: 缓存命中,直接返回;缓存未命中查询数据库,写入缓存,设定超时时间
  • 写数据: 延迟双删

1.1. 延迟双删

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

延迟双删步骤如图所示,接下来有问题问小伙伴。

思考:延迟双删,先删除数据库,还是先删除缓存?

答案:无论先删除谁是会存在问题

1.2.先删除缓存,再更新数据库

假设,缓存和数据库值都是10

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

先删除缓存,再更新数据库,正常情况下步骤如下:

  • 步骤一: 线程一先删除缓存
  • 步骤二: 线程一更新数据库v=20
  • 步骤三: 线程二在线程一更新完成后才查询数据库v=20
  • 步骤四: 线程二查询数据库后将缓存写入redis缓存中v=20

相关阅读

  • Ceph分布式存储集群部署详细步骤教程

    Ceph分布式存储集群部署详细步骤教程

    为大家介绍Ceph分布式存储集群部署详细步骤教程的方法内容,相关内容具体如下: Ceph的部署工具: ceph-deploy:官方的部署工具,不再积极维护ceph-deploy。它不支持RHEL8,CentOS 8或更新的操作系

  • 前端模板网站有哪些 关于web制作网站的模板

    前端模板网站有哪些 关于web制作网站的模板

    全面为您解析前端模板网站有哪些和关于web制作网站的模板的内容,接下来分享详细内容。 1.GitHub Desktop 对于新手来说,要记住那么多git命令可能有点困难,建议新手用git可视化工具,会方便

  • 什么是802.11ac WIFI5? 802.11ac最大传输速率

    什么是802.11ac WIFI5? 802.11ac最大传输速率

    今天为大家介绍什么是802.11acIT技巧方面的经验,下面小编为您详细解答 802.11ac,也被称为WiFi 5,是无线局域网(WLAN)的一种标准,旨在提供更快的数据传输速度和更好的性能。该标准于2013年

  • 中间件解析:概念、类型与实际应用全面探讨

    中间件解析:概念、类型与实际应用全面探讨

    为网友们详解中间件解析的教程内容,一起来看看吧! 一、什么是中间件 在软件开发领域,中间件(Middleware)是一种位于操作系统和应用程序之间的软件,它为应用程序提供了一种统一的、