Redis 分布式锁

1.Redis 分布式锁实现

采用 机器ID+线程ID 做为 value

抢到锁后只有value 匹配上 才能做操作【删除,续命(看门狗)】

java 复制代码
# 客户端A(机器1)加锁
SET lock_key 123 NX EX 30  

# 客户端A业务超时,锁过期自动释放
# 客户端B(机器2)抢到锁
SET lock_key 456 NX EX 30  

# 客户端A业务执行完,执行DEL lock_key → 误删了客户端B的锁!

2.看门狗是在客户端执行的

Redis 服务器本身是无状态的键值存储服务,它只负责执行你发过去的指令(比如 SET、EXPIRE、Lua 脚本),不会主动创建线程去监控 / 续期某个 key------ 所有 "主动行为"(比如定时检查、自动续期)都由客户端自己实现。

客户端线程发起请求,Redis 只负责执行脚本并返回结果,不会跑任何 "看门狗" 相关逻辑。

如果 Redis 服务器来管续期,会出现致命问题:

Redis 要为每个锁 key 维护一个监控线程,高并发下(比如 10 万个锁),Redis 会被线程调度压垮,性能暴跌;

Redis 是集群部署时,主从切换 / 分片迁移会导致监控线程丢失,续期逻辑失效;

违背 Redis"极简核心 + 客户端扩展" 的设计原则(Redis 只做最核心的存储,复杂逻辑交给客户端)。

相关推荐
残 风38 分钟前
PostgreSQL 存储机制详解
数据库·postgresql·开源·数据库开发
JacksonMx1 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
tachibana21 小时前
性能指标的口径选择
数据库·人工智能·架构·大模型·llm
风流 少年2 小时前
Spring AI 2.0:阿里云百炼平台(智能体应用)
redis·spring·阿里云
肠畔码农2 小时前
深度解密 Redis 分布式锁:从单机原子语义到集群架构博弈
redis·分布式·架构
机器人梦想家2 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
小妖同学学AI3 小时前
开源向量数据库的王者:Milvus 深度解析,专为 AI 应用打造的云原生搜索引擎!
数据库·开源·milvus
l1258653 小时前
# RAG上线评估指标体系:六大核心指标与压测实战全解析
数据库·人工智能·python·mysql·langchain·milvus
宠友信息3 小时前
IM系统开发技术路线分析,即时通讯源码助力快速搭建聊天应用
java·spring boot·redis·websocket·mysql·uni-app·vue
一只鹿鹿鹿4 小时前
数据资产管理解决方案(Word文件)
大数据·数据库·安全·web安全·系统安全