【HBZ分享】高并发下更新数据库和Redis缓存的顺序问题

news/2024/11/18 0:41:08/

场景一:先更新数据库,再更新缓存

  1. A线程更新数据库
  2. A线程再更新缓存
  3. 线程A更新数据库时commit失败, 进行了rollback,导致DB没更新数据,但此时却把redis缓存更新了
  4. 导致缓存和数据库不一致

场景二:先删除缓存,再更新数据库

  1. 线程A删除缓存,然后去更新数据库,此时数据库还没commit
  2. 线程B访问缓存,此时缓存已被A线程删除,所以去数据库读取数据,但由于还没commit,所以B读取数据库取出的是老数据,并把老数据存入了redis缓存
  3. 线程A此时进行了commit, 数据库更新了最新数据,但此时缓存已经有数据了,并且是B存的老数据
  4. 此时数据不一致了,缓存老数据, DB新数据

场景三:先删除缓存,再更新数据库,再删除缓存(第二次删除可以异步)

  1. 线程A删除缓存,然后去更新数据库,此时数据库还没commit
  2. 线程B访问缓存,此时缓存已被A线程删除,所以去数据库读取数据,但由于还没commit,所以B读取数据库取出的是老数据,并把老数据存入了redis缓存
  3. 线程A此时进行了commit, 数据库更新了最新数据,但此时缓存已经有数据了,并且是B存的老数据,此时数据库与缓存数据不一致
  4. 线程A再次删除redis缓存,此时B存入的老数据又被删除了,redis再次为空,没有对应数据
  5. 线程C来了,发现缓存没数据,所以从数据库查数据, 此时A已经commit了,所以数据库是新数据
  6. C线程将DB查询的数据放入缓存。
  7. 此时缓存与数据库都是新数据,但浪费了一次IO

http://www.ppmy.cn/news/727304.html

相关文章

设计灵感|双重曝光放在海报里原来这么好看!

双重曝光利用两张照片中的不同景象相互叠加,产生出更加震撼人心的视觉效果,在海报设计中能通过这种方法产生极强的视觉表现力,值得一试!集设网www.ijishe.com设计师交流社区带来双重曝光成功作品,值得大家借鉴&#xf…

摄影后期技术:包围曝光

大家可能会疑惑,遇到大光比场景究竟应该怎么拍摄呢?提高亮度,画面的高光部分就会过曝;拉低亮度,画面的暗部就会死黑,那么今天带来的方法就是摄影后期技术中的方法:包围曝光。 拍摄思路&#xf…

摄影常用词:光圈、快门、曝光、底片、ISO、焦距、景深

一、基本关系 摄影的原理就是小孔成像。 光圈就是小孔,底片就是成像的载体。 快门就是小孔打开的时间,ISO是底片对于光的灵敏程度。 曝光是指成像期间通过小孔进入的光能量,也是底片接收到的光能量。 【推荐】B站视频:相机入门教…

制作人物双重曝光海报

1、我们将准备好的素材照片拖进PS,ctrl+j复制一层。接下来,我们利用快速选择、魔棒、通道等方法将人物抠出来。 我们新建一个大小为800 x 800像素的画布,填充一个白色。将扣好的人物拖进新建的文档中。 下面我们打开城市的照片&am…

HDR视频和截图曝光严重,需要如何处理?

这个问题要分开说,首先HDR视频的录制有两种方法,一个是用高端采集卡,支持HDR录制的,比如圆刚的GC573,录制的时候点HDR按钮如下图 另一种是用Nvdia自带的录制软件Geforce exerience,这个软件录制的软件和截出…

双重曝光制作

1.打开图片并复制图层为“拷贝” 2.用快速选择对人物进行抠图 3.新建图层,底色为白色,并且将抠好的图像放入其中 4.打开城市图片,并复制一层 5.将下部城市部分抠出来 6.将抠出的图片放入之前的图片中并且进行调整 7.按住ctrl并点击蒙版选…

计算机曝光模式有哪些,曝光模式_拍摄技巧_太平洋电脑网PConline

曝光英文名称为Exposure,曝光模式即计算机采用自然光源的模式,通常分为多种,包括:快门优先、光圈优先、手动曝光、AE锁等模式。照片的好坏与曝光量有关,也就是说应该通多少的光线使CCD能够得到清晰的图像。曝光量与通光…

Ps 初学者教程「59」如何在图片中创建双重曝光效果?

欢迎观看 Photoshop 教程,小编带大家了解使用 ps 组合两张照片,创建无缝的双重曝光效果。 在胶片摄影中,双重曝光是在一张图像中组合两次曝光以产生令人回味的结果。 打开您的两张图片并将其中一张拖到另一张上,将白雪皑皑的风景…