分布式锁2:基于redis实现分布式锁

一 redis实现分布式锁

1.1 原理

setnx+expire+del 命令实现redis的分布式锁;其中 setnx 不存在则新增;存在则忽略。即先用setnx来抢锁,如果抢到之后,再用expire给锁设置一个过期时间,防止锁忘记了释放。例如:

setnx lock 111 ex 20 nx

**但是如果expire无法执行, 会导致死锁,**redis中setnx+expire是非原子操作, 除了用LUA脚本保证实现原子操作, 其实可以直接使用redis自带的set方法直接实现.

相关推荐
Omics Pro12 小时前
中医临床决策5款大语言模型,谁主沉浮?
数据库·人工智能·机器学习·语言模型·自然语言处理·chatgpt
BomanGe1012 小时前
NSK NH35EM 高负载法兰型直线导轨详述
服务器·网络·数据库·经验分享·规格说明书
何极光12 小时前
MySQL 8.0详细安装教程(附下载地址)
数据库·mysql·adb
2601_9618752412 小时前
花生十三资料网盘|百度云|下载
数据库·windows·git·svn·eclipse·github
承渊政道12 小时前
【MySQL数据库学习】(MySQL复合查询)
数据库·学习·mysql·bash·database·数据库开发·数据库架构
我是一颗柠檬12 小时前
【Java项目技术亮点】Leaf号段模式双Buffer优化
java·开发语言·分布式·后端·架构
Cx330❀12 小时前
【MySQL基础】详解MySQL数据类型:底层原理、越界测试与最佳实践
linux·开发语言·数据库·c++·mysql
芒鸽12 小时前
HarmonyOS 分布式开发实战:设备协同、数据共享与跨设备迁移
分布式·wpf·harmonyos
Upsy-Daisy12 小时前
Hermes Agent 学习笔记 07:Messaging Gateway,让 Agent 从终端走向多平台入口
运维·服务器·数据库
程序员晨曦12 小时前
数据库写轮眼:看透 MVCC 版本链、快照、隔离级别。
数据库·oracle