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

相关推荐
回家路上绕了弯4 分钟前
支付请求幂等性设计:从原理到落地,杜绝重复扣款
分布式·后端
小满、15 分钟前
MySQL :存储引擎原理、索引结构与执行计划
数据库·mysql·索引·mysql 存储引擎
x***133921 分钟前
SQL Server 创建用户并授权
数据库·oracle
JIngJaneIL26 分钟前
智慧物业|物业管理|基于SprinBoot+vue的智慧物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·论文·智慧物业管理系统
ANYOLY38 分钟前
Redis 面试题库
java·redis·面试
枫叶梨花1 小时前
一次 Kettle 中文乱码写入失败的完整排查实录
数据库·后端
小马爱打代码1 小时前
SpringBoot + Quartz + Redis:分布式任务调度系统 - 从架构设计到企业级落地
spring boot·redis·分布式
笃行客从不躺平1 小时前
遇到大SQL怎么处理
java·开发语言·数据库·sql
逻极2 小时前
Redis Queue (RQ) 核心原理:轻量任务队列的设计与实践(一句话讲透核心本质)
数据库·redis·bootstrap
q***51892 小时前
ubuntu 安装 Redis
linux·redis·ubuntu