1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| public void test(){ RedissonClient redissonClient1 = getRedissonClient("redis://127.0.0.1:6379", 0); RedissonClient redissonClient2 = getRedissonClient("redis://127.0.0.1:6379", 1); RedissonClient redissonClient3 = getRedissonClient("redis://127.0.0.1:6379", 2); String resourceName = "REDLOCK_KEY"; RLock lock1 = redissonClient1.getLock(resourceName); RLock lock2 = redissonClient2.getLock(resourceName); RLock lock3 = redissonClient3.getLock(resourceName); RedissonRedLock redLock = new RedissonRedLock(lock1, lock2, lock3); boolean isLock; List<MaxLimitRankingVo> list = null; try { isLock = redLock.tryLock(500, 10000, TimeUnit.MILLISECONDS); System.out.println("isLock = "+isLock); if (isLock) { Thread.sleep(8000); } } catch (Exception e) { } finally { redLock.unlock(); } }
public RedissonClient getRedissonClient(String address, int database){ Config config = new Config(); config.useSingleServer().setAddress(address).setDatabase(database); return Redisson.create(config);
}
|