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

相关推荐
珠海西格18 分钟前
四可装置如何监测组件衰减与逆变器效率?
大数据·运维·服务器·分布式·能源
golang学习记21 分钟前
Go 实时批处理:让数据库少挨点打 [特殊字符]
开发语言·数据库·golang
wang090736 分钟前
Linux性能优化之平均负载
linux·数据库·性能优化
电商API&Tina43 分钟前
比价 / 选品专用:京东 + 淘宝 核心接口实战(可直接复制运行)
大数据·数据库·人工智能·python·json·音视频
heze091 小时前
sqli-labs-Less-53
数据库·mysql·网络安全
咕噜签名-铁蛋1 小时前
GPU型实例安装nvidia-fabricmanager服务完整实操指南
大数据·数据库·人工智能·ai编程
sqyno1sky2 小时前
数据分析与科学计算
jvm·数据库·python
仗剑_走天涯2 小时前
Hadoop 安装
大数据·hadoop·分布式
czlczl200209252 小时前
Zookeeper原理
分布式·zookeeper·云原生
gjc5923 小时前
如何写好SQL:企业内训文档
数据库·sql