DevCode 栈源
首页
博客
关于
写博客
编辑博客
文章标题
文章类别
选择类别...
Java 核心
Spring 生态
数据库
中间件
架构设计
开发工具
标签(按 Enter 添加)
Redis
微服务
正文内容
## 前言 分布式锁是微服务架构中保证数据一致性的重要手段。 ## 1. 基础实现 ```java // SET NX EX 实现分布式锁 String lockKey = "lock:order:" + orderId; String requestId = UUID.randomUUID().toString(); Boolean locked = redisTemplate.opsForValue() .setIfAbsent(lockKey, requestId, 30, TimeUnit.SECONDS); ``` ## 2. Redisson 方案 Redisson 提供了更完善的分布式锁实现: ```java RLock lock = redissonClient.getLock("order:lock:" + orderId); try { if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { // 业务逻辑 } } finally { if (lock.isHeldByCurrentThread()) { lock.unlock(); } } ``` ## 3. 常见陷阱 - 锁过期但业务未完成(需 watchdog 机制) - 误删他人锁(需校验 requestId) - 主从切换导致锁丢失 ## 总结 生产环境推荐使用 Redisson 的分布式锁,它内置了看门狗机制和可重入支持。
取消
保存
苏ICP备2026043658号-1