当前位置: 首页 > news >正文

使用redis分布式锁,不要把锁放在本地事务内部

在使用分布式锁的时候,习惯性的尽量缩小同步代码块的范围。 

但是如果数据库隔离级别是可重复读,这种情况下不要把分布式锁加在@Transactional注解的事务方法内部。

因为可能会出现这种情况:


线程1开启事务A后获取分布式锁,执行业务代码后在事务内释放了分布式锁。这时候线程2开启了事务B获取到了线程1释放的分布式锁,执行查询操作时查到的数据就可能出现问题。因为此时事务A是在事务内释放了锁,事务A本身还没有完成提交

http://www.lryc.cn/news/391332.html

相关文章:

  • Python学生信息管理系统(完整代码)
  • 【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动
  • uniapp应用如何实现传感器数据采集和分析
  • 读书笔记-Java并发编程的艺术-第3章(Java内存模型)-第6节(final域的内存语义)
  • Spring AI 1.0.0 新变化,从 0.8.1 如何升级
  • 【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战
  • Java中继承接口和实现接口的区别、接口和抽象类的区别、并理解关键字interface、implements
  • Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本
  • 易保全推动区块链应用与AI融合创新发展
  • C++(Python)肥皂泡沫普拉托边界膜曲面模型算法
  • VBA打开其他Excel文件
  • 模拟 ADC 的前端
  • tls各个版本的安全性介绍
  • PHP家政服务预约单开版微信小程序系统源码
  • 数据增强:目标检测算法中的性能提升利器
  • KVB交易平台 :市场迎来新热潮!铜价会持续上涨吗?
  • React@16.x(44)路由v5.x(9)源码(1)- path-to-regexp
  • C#面:String str=new String(“a“)和String str = “a“有什么区别
  • CS算法(二)—— 斜视SAR点目标仿真
  • 2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会)
  • 【RabbitMQ问题踩坑】RabbitMQ设置手动ack后,消息队列有多条消息,只能消费一条,就不继续消费了,这是为什么 ?
  • 深度解码:需求跟踪的艺术与实战应用
  • 数据结构——树的基础概念
  • TimerManager和Timer
  • 手写Spring-MVC之前后置处理器与异常处理、数据库框架
  • 学习笔记(linux高级编程)11
  • vite+vue3+nginx配置统一公共前缀
  • android 国内下载Gradle源
  • mysql8一键安装脚本(linux) 拿走即用
  • C# 开发Winform DataGridView的增删改查实战