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

相关推荐
hanqunfeng1 分钟前
(一)Redis 7 + ACL 单节点、主从、哨兵、集群构建方法
redis
茁壮成长的露露10 分钟前
MongoDB单机安装
数据库·mongodb
qq_4061761415 分钟前
JS防抖与节流:从原理到实战的性能优化方案
服务器·数据库·php
a***592616 分钟前
MySQL数据可视化实战指南
数据库·mysql·信息可视化
Maggie_ssss_supp17 分钟前
LINUX-MySQL多表查询
数据库·mysql
lxp19974123 分钟前
Mysql短课题全手稿
数据库·mysql
重学一遍24 分钟前
深啃项目第四篇-kafka
分布式·kafka
我是一只小青蛙88830 分钟前
Python实战:Kingbase数据库高效操作指南
数据库·oracle
龙亘川1 小时前
【课程5.7】代码编写:违建处置指标计算(违建发现率、整改率SQL实现)
数据库·oracle·智慧城市·一网统管平台
松涛和鸣1 小时前
55、ARM与IMX6ULL入门
c语言·arm开发·数据库·单片机·sqlite·html