Redisson分布式锁

Redisson配置:

@Configuration
public class MyRedissonConfig {
    @Bean(destroyMethod="shutdown")
    public RedissonClient redisson() throws IOException{
        Config config = new Config();
        config.useClusterrServers()
                .addNodeAddress("redis://127.0.0.1:7004","redis://127.0.0.1:7001");
        return Redisson.create(config);
    }
}

Redisson是基于Redis的可重入锁RLock,并且RLock实现了Lock接口。

使用方法:
RLock lock = redisson.getLock("anyLock");
//加锁,阻塞式等待。默认加的锁都是30s时间。
//锁会自动续期,如果业务超长,运行期间自动给锁续上新的30s。
//加锁的业务只要运行完成,就不会给当前锁续期,及时不手动解锁,锁默认在30s以后自动删除。
lock.lock();

//加时间的锁,10s自动解锁,自动解锁时间一定要大于业务的执行时间,锁到期后不会自动续期
//加了超时时间,就发送给lua脚本,进行占锁,不会自动续期
//如果未指定锁的超时时间,就使用30*1000[lockWatchdongTimeout看门狗的默认时间,续期时间是1/3看门狗时间]
lock.lock(10,TimeUnit.SECONDS);
try{
    ....业务执行
}
catch(Exception e){}
finally{
//解锁 假设解锁代码没有运行,redisson不会出现死锁
lock.unlock();
}

读写锁
RReadWriteLock rwlock = redisson.getReadWriteLock("lock");
rwlock.readLock().lock();
rwlock.writeLock().lock();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值