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

相关推荐
落木萧萧8256 小时前
MyBatis 启动的时候都在干什么:从 MappedStatement 说起
java·数据库·后端
g10565591397 小时前
华为 OceanStor 基础使用入门指南
服务器·数据库·性能优化
潇凝子潇7 小时前
MySQL buffer pool 计算公式
数据库·mysql
Thomas21437 小时前
kafka 存储flink changelog两种方式和形态
分布式·flink·kafka
GIR1237 小时前
首发:2026年分布式储能系统市场分析报告——覆盖发展前景、占有率与十五五规划
分布式
广州灵眸科技有限公司7 小时前
瑞芯微(EASY EAI)RV1126B display
开发语言·数据库·人工智能·科技·嵌入式硬件
凌晨1687 小时前
MySQL:DML、DDL与TCL精讲
数据库·mysql·oracle
风哥2号7 小时前
数据库教程FGMT04‑生产环境Linux+Oracle19c RAC集群安装配置与项目实战
linux·数据库
Java开发追求者7 小时前
navicat连接新的数据库提示Oracle library is not loaded.
数据库·oracle·oracle11g·oracle library·is not loaded
砚底藏山河7 小时前
存储选型实战:CSV-SQLite-MySQL同机基准(魔码量化实战 #02)
java·数据库·python·金融·maven