如何保证缓存与数据库的双写一致性(3)
导读:如何保证缓存与数据库的双写一致性,先更新数据库,再删除缓存,异常情况下步骤如下 : 步骤一: 线程一 查询缓存,未命中, 查询数据库v=10 步骤二: 线程一操作未完成切换到线程二,线程二再
如何保证缓存与数据库的双写一致性

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

结论:先更新数据库,再删除缓存可能出现脏数据
1.4. 延迟双删问题
思考:延迟双删为什么要删除两次缓存?
答案:无论先删除缓存,还是先修改数据库,都会存在脏数据风险,所以在写操作的时候使用延迟双删,降低脏数据出现概率
思考:为什么要延时删除?
因为一般数据是主从模式,读写分离,数据库需要延时一会将数据从主节点同步到从节点

注意:延时删除还是存在问题,因为延时时间无法确定,所以还是存在脏数据风险
2.双写一致,强一致性解决方案
使用分布式锁,解决双写一致性的强一致性,但是性能较差
相关阅读
-
Ceph分布式存储集群部署详细步骤教程
为大家介绍Ceph分布式存储集群部署详细步骤教程的方法内容,相关内容具体如下: Ceph的部署工具: ceph-deploy:官方的部署工具,不再积极维护ceph-deploy。它不支持RHEL8,CentOS 8或更新的操作系
-
前端模板网站有哪些 关于web制作网站的模板
全面为您解析前端模板网站有哪些和关于web制作网站的模板的内容,接下来分享详细内容。 1.GitHub Desktop 对于新手来说,要记住那么多git命令可能有点困难,建议新手用git可视化工具,会方便
-
什么是802.11ac WIFI5? 802.11ac最大传输速率
今天为大家介绍什么是802.11acIT技巧方面的经验,下面小编为您详细解答 802.11ac,也被称为WiFi 5,是无线局域网(WLAN)的一种标准,旨在提供更快的数据传输速度和更好的性能。该标准于2013年
-
中间件解析:概念、类型与实际应用全面探讨
为网友们详解中间件解析的教程内容,一起来看看吧! 一、什么是中间件 在软件开发领域,中间件(Middleware)是一种位于操作系统和应用程序之间的软件,它为应用程序提供了一种统一的、


