下面介绍下如何使用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