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

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

什么是分布式锁

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

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

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

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

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

注意事项

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

在这里插入图片描述

http://www.dtcms.com/a/295303.html

相关文章:

  • Windows计算器项目全流程案例:从需求到架构到实现
  • 宝塔通过docker部署JupyterHub指南【常见错误处理】
  • 深入解析文件操作(下)- 文件的(顺序/随机)读写,文件缓冲区,更新文件
  • 【AI】Jupyterlab中数据集的位置和程序和Pycharm中的区别
  • 20-ospf技术
  • MIT线性代数01_方程组的几何解释
  • 绿色转向的时代红利:创新新材如何以技术与标准主导全球铝业低碳重构
  • 旅行短视频模糊的常见原因及应对方法
  • 内网穿透:打破网络限制的利器,内外网概念、穿透原理、实际操作方法步骤
  • 【LeetCode 热题 100】39. 组合总和——(解法一)选或不选
  • 【物联网】基于树莓派的物联网开发【16】——树莓派GPIO控制LED灯实验
  • 暑期算法训练.7
  • 97.2%灵敏度,桐树基因MSI NGS 2249 Panel——低肿瘤含量MSI检测的王者
  • CIRL:因果启发的表征学习框架——从域泛化到奖励分解的因果革命
  • LLM:Day1
  • 【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令
  • Web前端:JavaScript some()迭代方法
  • 前端如何利用多通道发布(MCP)打造高效AI驱动应用?
  • Hadoop磁盘I/O瓶颈的监控与优化:从iostat指标到JBOD vs RAID的深度解析
  • 2025真实面试试题分析-iOS客户端开发
  • Spring工程中集成多个redis数据源
  • iOS WebView 加载失败与缓存刷新问题排查实战指南
  • [iOS开发工具] 【iOS14以及以下】cydia商店按键精灵iOS新版V2.X安装教程
  • STM32 IAP升级失败之谜:时钟源配置的陷阱与解决方案
  • 【AJAX】XMLHttpRequest、Promise 与 axios的关系
  • JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
  • 【计算机网络】第六章:应用层
  • socket请求
  • 第二十章 W55MH32 WOL示例
  • B站 XMCVE Pwn入门课程学习笔记(5)