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

相关推荐
Lucis__7 小时前
Redis持久化机制解析
redis·缓存·操作系统·文件·非关系型数据库·1024程序员节
不脱发的程序猿8 小时前
纳指ETF量化策略
数据库·人工智能·1024程序员节
程序员塔塔喵8 小时前
【MySQL篇|第一篇】索引失效的情况
数据库·mysql·索引失效
北京青蓝智慧马老师9 小时前
比外部黑客更难防的,是那个有权限的自己人(3 个脱敏复盘)
大数据·数据库·人工智能
笃行3509 小时前
拆一台数据集成产品:KFS 的骨架、肌肉和神经
数据库
4SAPI9 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
用户0942485680310 小时前
第7章:Redis有序集合 ZSet 实战:排行榜与延时任务
redis·架构·源码
码士集团小青11 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
2301_322414280411 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
乐茵lin11 小时前
Redis 持久化机制详解:RDB 与 AOF
redis·bootstrap·mybatis