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

相关推荐
guo_wen_qiang4 分钟前
kafka重复消费
分布式·kafka
夜雪一千12 分钟前
MySQL中修改JSON类型的数据实战
数据库·mysql·json
竣达技术31 分钟前
就地显示 + 远程上传,铅酸蓄电池在线监测完整解决方案
运维·数据库
霸道流氓气质32 分钟前
分布式锁(Distributed Lock)详解
分布式
HUIBUR科技33 分钟前
AI 中枢,面向企业场景构建的 AI 智能体
前端·数据库·人工智能
for_ever_love__40 分钟前
MySQL 优化器与 OPTIMIZER_TRACE:把‘为什么选这条计划‘问到水落石出
数据库·mysql·优化器·trace·optimizer·执行计划分析·cic
j7~1 小时前
【仿 RabbitMQ 项目】发布订阅消息队列 (篇九):队列数据管理,内存镜像 + SQLite 持久化实现
数据库·c++·分布式·sqlite·rabbitmq·队列数据管理
做一个AK梦1 小时前
分布式CAP理论
分布式
l1t1 小时前
DeepSeek总结的PostgreSQL中TABLESAMPLE 如何挑选行
数据库·sql
qyyyyy5701 小时前
WhatsApp 联系人表格怎么清洗?Excel 文本类型、重复号码与姓名冲突处理
数据库·自然语言处理·excel·hash