
由于项目中需要使用到分布式锁,虽然分布式锁的实现有很多方法,例如,使用数据库、zookeeper、redis,以前我也写过这样的分享文章
虽然可以手写分布式锁,但还是比较复杂的,代码量比较到,由于现在已经有了实现分布式锁的jar包了,例如,redisson就是了,没必要自己手写那么复杂,还是站在前人的肩膀上吧
项目环境本项目是基于springcloudalibaba的项目,版本如下:
2.2.10.RELEASE Hoxton.SR4 2.2.5.RELEASE
redis使用哨兵模式的redis
引入依赖首先得引入redisson得依赖
编写redisson配置类org.redisson redisson-spring-boot-starter3.12.4
@Configuration
public class RedissonConfig {
@Value("${spring.redis.sentinel.master}")
private String mymaster;
@Value("${spring.redis.sentinel.nodes}")
private String nodes;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.database}")
private String databas;
@Bean
public RedissonClient redisson() {
Config config = new Config();
String [] adds=nodes.split(",");
for(int i=0;i
到这里,我们配置得redisson就完成了接下来就是使用了
使用分布式锁
首先,把客户端注入
@Autowired
private RedissonClient redissonClient;
然后,在代码中就可以使用分布式锁了,一般用法如下:
RLock lock = redissonClient.getLock("该锁的key");
try {
lock.lock();
该处为加锁的业务代码
} finally {
lock.unlock();
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)