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

相关推荐
CNSSIRD数据库1 分钟前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
fd320030 分钟前
达梦数据库更新统计信息后仍走旧执行计划解决方案
数据库
华章酱1 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-1 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8542 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils2 小时前
只恢复一张表,别把整个库都还回去
数据库
张某布响丸辣2 小时前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵
龙腾AI白云2 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB3 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB3 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析