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

【分布式锁】什么是分布式锁?分布式锁的作用?

什么是分布式锁

分布式锁是一种用于在分布式系统中协调多个节点对共享资源的访问的机制。它确保在多个节点并发访问时,只有一个节点可以在某个时刻拥有特定资源的访问权,从而避免数据不一致、竞争条件或资源冲突的问题。常用的实现方式有Redis,Zookeeper。我们这篇主要讲解Redis.

为什么要使用分布式锁?为什么不直接使用本地锁呢?

因为本地锁是JVM级别的,它只能锁住当前线程,经过分布式部署之后,每台服务器在并发情况下只能锁住一个线程,因此需要使用分布式锁。
在这里插入图片描述
这种情况下经过Nginx反向代理后,如果使用本地锁,只能锁住当前线程。

为什么Redis可以实现分布式锁

由于Redis本身可以被多个客户端共享访问,因此可以作为存储锁的容器。而且Redis中set还有个NX选项,作用是如果集合中存在key就插入失败,如果不存在,则插入成功。我们可以基于这个实现分布式锁。即当集合中不存在该key时,插入成功,表示获取到锁了,如果插入失败,说明此时没有获取到锁。

注意事项

需要加上过期时间避免当前线程由于某些原因导致无法释放锁,从而造成其他线程无法获取锁

在这里插入图片描述

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

相关文章:

  • redis前期工作:环境搭建-在ubuntu安装redis
  • 实验-OSPF
  • 开立医疗2026年校园招聘
  • 【论文|复现】YOLOFuse:面向多模态目标检测的双流融合框架
  • OSPF路由协议单区域
  • Selenium基础教程
  • 在Ubuntu上使用QEMU学习RISC-V程序(2)gdb调试
  • 【OpenCV篇】OpenCV——03day.图像预处理(2)
  • 征服 Linux 网络:核心服务与实战解析
  • 《从点击到共鸣:论坛前端如何用交互细节编织用户体验》
  • GISBox实操指南:如何将IFC文件高效转换为3DTiles格式‌‌
  • JVM 核心内容
  • Java并发编程第六篇(AQS设计理念与源码解析)
  • Linux724 逻辑卷挂载;挂载点扩容;逻辑卷开机自启
  • 快速启用 JMeter(macOS Automator 创建 JMeter 脚本)
  • VUE2 学习笔记5 动态绑定class、条件渲染、列表过滤与排序
  • 【AJAX】XMLHttpRequest、Promise 与 axios的关系
  • 最新免费使用Claude Code指南(Windows macOS/Linux)
  • web前端调试
  • 前端如何做安全策略
  • easyexcel流式导出
  • Windows计算器项目全流程案例:从需求到架构到实现
  • 4.5 优化器中常见的梯度下降算法
  • 绿色转向的时代红利:创新新材如何以技术与标准主导全球铝业低碳重构
  • 从手动操作到自动化:火语言 RPA 在多系统协作中的实践
  • 飞腾D3000麒麟信安系统下配置intel I210 MAC
  • 基础入门 [CMD] Windows SSH 连接服务器教程(系统自带方式)
  • Linux和Windows基于V4L2和TCP的QT监控
  • 【MAC电脑系统变量管理】
  • 进程调度的艺术:从概念本质到 Linux 内核实现