前言
springboot开发现在基本都是分布式环境,分布式环境下分布式锁的使用必不可少,主流分布式锁主要包括数据库锁,redis 锁,还有zookepper实现的分布式锁,其中最实用的还是Redis分布式锁,redisson目前是官方唯一推荐的java版的分布式锁。但是直接用官方redisson集成springboot还是稍有点麻烦,有没有更简单的使用方案,答案是有。
redisson-spring-boot-starter 从名字看就知道是简化redisson的jar。
推荐理由
- 开源免费(这永远是我推荐的第一条)
- 集成简单
- 功能强大,支持各种集群模式,支持各种锁定模式
- 文档持续更新
实战
1 引入 pom.xml
<dependency>
<groupId>com.zengtengpeng</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>1.0.6</version>
</dependency>
2 模式配置
2.1 单点模式配置 application.properties
#单Redis节点模式
redisson.singleServerConfig.address=127.0.0.1:6379
2.2 主从模式配置
redisson.model=MASTERSLAVE
#第一台机器就是主库.其他的为从库
redisson.multiple-server-config.node-addresses[0]=127.0.0.1:6379
redisson.multiple-server-config.node-addresses[1]=127.0.0.1:6380
redisson.multiple-server-config.node-addresses[2]=127.0.0.1:6381
3 加注解使用
@Lock(keys = "#product.id+'locks'")