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

匿名 (未验证) 提交于 2019-12-03 00:44:02


下面介绍下如何使用Redisson。

2,Redisson的使用方式十分简单,详见官方文档:https://github.com/redisson/redisson/wiki/2.-%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95

3,加入jar包的依赖:

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

4,配置Redisson

public class RedissonManager {     private static Config config = new Config();     //声明redisso对象     private static Redisson redisson = null;    //实例化redisson    public static void init(String key,String value){         try {           //使用单机版配置           config.useSingleServer().setAddress("127.0.0.1:6379");           //得到redisson对象             redisson = (Redisson) Redisson.create(config);                     }catch (Exception e){             e.printStackTrace();         }     }     //获取redisson对象的方法     public static Redisson getRedisson(){         return redisson;     } }

5,锁的获取和释放

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());     } }

6,业务逻辑中使用分布式锁

@RequestMapping("/redder")     @ResponseBody     public String redder() throws IOException{          String key = "test123";         //加锁          DistributedRedisLock.acquire(key);         //执行具体业务逻辑         dosoming         //释放锁         DistributedRedisLock.release(key);        //返回结果         return soming;      }

  

 

  

原文:https://www.cnblogs.com/webwangbao/p/9247318.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!