20211114 基于Redis实现分布式锁(使用Redisson框架)
原理图
Redis 相关的四种技术
- Jedis
- Lettuce(
spring-boot-starter-data-redis
默认引入) - RedisTemplate
- Redisson
简单使用
操作步骤
-
pom.xml 添加依赖
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.16.4</version> </dependency>
-
application.properties 配置 Redis 连接信息
spring.redis.host=localhost spring.redis.port=6379 #spring.redis.password=
-
简单使用类
import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class MyRedisLock { @Autowired private RedissonClient redissonClient; public void testLock() { RLock rLock = redissonClient.getLock("redisKey"); try { rLock.lock(); Thread.sleep(10000000); } catch (InterruptedException e) { e.printStackTrace(); } finally { if (rLock != null) { rLock.unlock(); } } } }
-
Spring Boot 启动类
@SpringBootApplication public class RedisLockApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(RedisLockApplication.class); MyRedisLock myRedisLock = applicationContext.getBean(MyRedisLock.class); myRedisLock.testLock(); } }
实现效果
锁的类型在 Redis 中是 Hash
,默认 TTL 是 30s
,当 TTL 到达 20s 时,会自动延期,TTL 重新回到 30s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2019-11-14 20191114 Spring Boot官方文档学习(4.7)