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

相关推荐
linweidong2 分钟前
中科曙光Java后端开发面试题及参考答案
分布式·设计模式·spring mvc·tcp协议·三次握手·后端开发·java面经
航Hang*3 分钟前
第3章:复习篇——第3节:数据查询与统计---题库
数据库·笔记·sql·学习·mysql·期末·复习
廋到被风吹走3 分钟前
【数据库】【MySQL】事务隔离深度解析:MVCC 实现与幻读解决机制
android·数据库·mysql
Star Learning Python12 分钟前
MySQL面试的基础知识
数据库·sql
知识分享小能手17 分钟前
Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)
数据库·学习·oracle
aigcapi27 分钟前
中转API哪家好?2026主流服务商横向测评+全场景选型指南
数据库·api
悟道|养家32 分钟前
批量处理与向量化计算(8)
数据库·oracle·性能优化
陈天伟教授34 分钟前
关系数据库-03. 关系的完整性-实体完整性
数据库·达梦数据库·国产数据库
什么都不会的Tristan39 分钟前
redis-原理篇-ZipList(压缩列表)
数据库·redis·缓存
rustfs42 分钟前
使用 RustFS和 Arq,打造 PC 数据安全备份之道
分布式·docker·云原生·rust·开源