IT袋

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

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

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

时间:2023-11-22 12:47:18 来源:IT袋 作者:马勇
导读:如何保证缓存与数据库的双写一致性,先更新数据库,再删除缓存,异常情况下步骤如下 : 步骤一: 线程一 查询缓存,未命中, 查询数据库v=10 步骤二: 线程一操作未完成切换到线程二,线程二再

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

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

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

  • 步骤一: 线程一查询缓存,未命中, 查询数据库v=10
  • 步骤二: 线程一操作未完成切换到线程二,线程二再删除缓存.更新数据库v = 20
  • 步骤三: 线程二删除缓存
  • 步骤四: 线程一将查询结果写入缓存redis,缓存结果v=10

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

结论:先更新数据库,再删除缓存可能出现脏数据

1.4. 延迟双删问题

思考:延迟双删为什么要删除两次缓存?

答案:无论先删除缓存,还是先修改数据库,都会存在脏数据风险,所以在写操作的时候使用延迟双删,降低脏数据出现概率

思考:为什么要延时删除?

因为一般数据是主从模式,读写分离,数据库需要延时一会将数据从主节点同步到从节点

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

注意:延时删除还是存在问题,因为延时时间无法确定,所以还是存在脏数据风险

2.双写一致,强一致性解决方案

使用分布式锁,解决双写一致性的强一致性,但是性能较差

相关阅读

  • 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)是一种位于操作系统和应用程序之间的软件,它为应用程序提供了一种统一的、