分布式锁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方法直接实现.

相关推荐
A-刘晨阳5 小时前
AI原生时序数据库选型指南:从数据存储到智能决策的范式跃迁
数据库·时序数据库·ai-native
HalvmånEver6 小时前
MySQL的增删改查命令合集合集
数据库·sql·oracle
隔窗听雨眠6 小时前
从DNS解析到分布式存储的技术解构
分布式·网关·cdn·dns·socks
不剪发的Tony老师6 小时前
dblab:一款基于终端的交互式数据库客户端
数据库·sql
xwz小王子7 小时前
Science Robotics基础模型正在改写机器人集群的“游戏规则”
数据库·人工智能·机器人
茉莉玫瑰花茶7 小时前
LangGraph 介绍
服务器·网络·数据库
倒霉蛋小马7 小时前
【Redis】利用Redis构造全局唯一ID
数据库
夕除7 小时前
springboot--06
数据库·spring boot·mybatis
2401_833033628 小时前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
运维小子8 小时前
JumpServer Applet 发布自定义远程应用:Oracle SQL Developer 自动登录
数据库·sql·oracle·jumpserver