前言
Redisson 除了实现了redis基本功能以外,还重新实现了Java并发包里面的内容。
如何使用Redisson?Redisson可以说是redis客户端的加强版本,它里面的内容较多,也提供了分布式锁的实现,使用简单只需简单配置和调用即可,步骤如下:
引入Redisson的Jar包
进行Redisson与Redis的配置
使用分布式锁
使用方式:
- 通过Java API方式引入Redisson
- Spring项目引入Redisson
- SpringBoot项目引入Redisson
单元测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| @RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class RedissonLockApplicationTests {
@Test public void contextLoads() { }
@Test public void testRedissonLock() { Config config = new Config(); config.useSingleServer().setAddress("redis://localhost"); RedissonClient redisson = Redisson.create(config);
RLock rLock = redisson.getLock("order");
try { rLock.lock(30, TimeUnit.SECONDS); log.info("我获得了锁!!!"); Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); }finally { log.info("我释放了锁!!"); rLock.unlock(); } }
}
|
结果演示:

使用示例
引用依赖:
1 2 3 4 5
| <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.15.5</version> </dependency>
|
配置:
1
| spring.redis.host=localhost
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @RestController @Slf4j public class RedissonLockController { @Autowired private RedissonClient redisson;
@RequestMapping("redissonLock") public String redissonLock() { RLock rLock = redisson.getLock("order"); log.info("我进入了方法!!"); try { rLock.lock(30, TimeUnit.SECONDS); log.info("我获得了锁!!!"); Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); }finally { log.info("我释放了锁!!"); rLock.unlock(); } log.info("方法执行完成!!"); return "方法执行完成!!"; } }
|
结果演示:


参考资源
https://github.com/redisson/redisson