分布式锁Redisson的使用

高性能分布式锁-redisson的使用

1、官方文档

https://github.com/redisson/redisson/wiki/2.-%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95

2、项目集成

<dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson</artifactId>
         <version>2.7.0</version>
 </dependency>

3、配置Redisson

public class RedissonManager {
    private static Config config = new Config();
    //声明redisso对象
    private static Redisson redisson = null;
   	//实例化redisson 
  	static{     
    	config.useSingleServer().setAddress("127.0.0.1:6379");
      //得到redisson对象
      redisson = (Redisson) Redisson.create(config);
    }
 		//获取redisson对象的方法
    public static Redisson getRedisson(){
        return redisson;
    }
}

4、锁的获取和释放

public class DistributedRedisLock {
   	//从配置类中获取redisson对象
    private static Redisson redisson = RedissonManager.getRedisson();
    private static final String LOCK_TITLE = "redisLock_";
   	//加锁
    public static boolean acquire(String lockName){
       	//声明key对象
        String key = LOCK_TITLE + lockName;
       	//获取锁对象
        RLock mylock = redisson.getLock(key);
       	//加锁,并且设置锁过期时间,防止死锁的产生
        mylock.lock(2, TimeUnit.MINUTES); 
        System.err.println("======lock======"+Thread.currentThread().getName());
       	//加锁成功
        return  true;
    }
  	//锁的释放
    public static void release(String lockName){
       //必须是和加锁时的同一个key
        String key = LOCK_TITLE + lockName;
       	//获取所对象
        RLock mylock = redisson.getLock(key);
      	//释放锁(解锁)
        mylock.unlock();
        System.err.println("======unlock======"+Thread.currentThread().getName());
    }
}

5、业务逻辑中使用分布式锁

@RequestMapping("/redder")
@ResponseBody
public String redder() throws IOException{
  String key = "test123";
  //加锁 
  DistributedRedisLock.acquire(key);
  //执行具体业务逻辑
  //...........
  //释放锁
  DistributedRedisLock.release(key);
  //返回结果
  return soming; 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值