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

相关推荐
自动化监测Learner30 分钟前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
张文是假的啊37 分钟前
常用JPA注解解释
数据库
会周易的程序员1 小时前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
Allen_LVyingbo2 小时前
医疗AI基础2026-构建可靠智能体的编程路径(上)
大数据·数据库·人工智能·python·自动化
疯狂打码的少年2 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法
微软技术分享2 小时前
Ubuntu 本地部署Ollama+OpenWebUI教程
数据库·ubuntu·postgresql
ly76893 小时前
MySQL 自增主键耗尽:从原理到应急恢复
数据库·mysql·innodb·故障恢复·自增主键·主键设计
文人sec3 小时前
MySQL主库出问题了,从库怎么办?备库为什么会延迟好几个小时?
android·数据库·mysql
砚底藏山河4 小时前
【量化纯GET实战 #23】多股票相关性:用收益率看板块联动
java·数据库·python·金融·数据分析