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

redis中分布式锁的应用

我们之前讲了秒杀模块的实现,使用了sychronized互斥锁,但是在集群模式下因为不同服务器有不同jvm,所以synchronized互斥锁失效了。

这时就要找到一个两台服务器都能识别的锁,即redis中的setNX充当互斥锁,来控制秒杀的一人一单

在redis缓存击穿中,使用逻辑过期就用过互斥锁,这里原理一摸一样,只不过这里存储的value为线程ID

setNX互斥锁的使用:

场景1:(会导致一个用户创建多个订单)

场景2:

注*线程1和线程2的userID相同,所以创建的redis锁key值相同,但是value不相同,释放锁时如果不进行验证value值,很有可能会出现场景1的情况。

所以当线程检查锁不为自己的锁时,应该回滚,不创建订单,这样才可以保证一人一单

http://www.xdnf.cn/news/17778.html

相关文章:

  • 玩转Docker | 使用Docker部署JSON格式化工具ZJSON
  • 【论文阅读】基于多变量CNN模型的可穿戴外骨骼机器人人体运动活动识别
  • 计算机视觉--opencv(代码详细教程)(二)
  • Webpack Plugin 深度解析:从原理到实战开发指南
  • 【漏洞复现】WinRAR 目录穿越漏洞(CVE-2025-8088)
  • 服务器的安全检测和防御技术
  • Uniapp 条件编译详解
  • 机器学习--KNN算法
  • MySQL中的DML(二)
  • Python包管理工具uv使用教程
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 监控插件SkyWalking(一)原理
  • 【STM32入门教程】stm32简介
  • (第十五期)HTML文本格式化标签详解:让文字更有表现力
  • 《量子雷达》第5章 量子雷达发射机 预习2025.8.14
  • 腾讯混元全新开源Hunyuan-GameCraft:高动态交互式游戏视频生成框架
  • 【入门级-C++程序设计:13、STL 模板:栈(stack)、队 列(queue)、 链 表(list)、 向 量(vector) 等容器】
  • # 2025全球AI游戏市场研究报告:行业洞察与未来趋势
  • Unity人形角色IK优化指南
  • Vue3 vxeTree树形组件完全指南:从入门到精通的完整使用教程
  • 解决Maven编译时JAVA_HOME配置错误问题:从报错到根治的完整方案
  • web网站开发,在线%射击比赛成绩管理%系统开发demo,基于html,css,jquery,python,django,model,orm,mysql数据库
  • 2025天府杯数学建模A题分析
  • Swift 数据类型全景解析(基础到高阶)
  • Linux常用命令(下)
  • RabbitMQ面试精讲 Day 22:消息模式与最佳实践
  • vscode的ws环境,esp32s3连接wifi
  • Steam修改游戏安装目录
  • Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
  • 一、linux内存管理学习(1):物理内存探测