maven引入redissonjava
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.0</version> </dependency>
JavaConfignode
@Configuration public class RedissonConfiguration { @Value("${spring.redis.sentinel.nodes}") private String nodes; @Value("${spring.redis.sentinel.master}") private String masterName; @Value("${spring.redis.password}") private String redisPassword; @Bean public Redisson getRedisson() { Config config = new Config(); String[] nodeArray = nodes.split(","); for (int i = 0;i<nodeArray.length;i++) { nodeArray[i] = "redis://" + nodeArray[i]; } config.useSentinelServers().setMasterName(masterName).setPassword(redisPassword) .addSentinelAddress(nodeArray); Redisson redisson = (Redisson) Redisson.create(config); return redisson; } }
应用web
RLock lock = redisson.getLock(key); try { boolean locked = lock.tryLock(Constants.DEFAULT_LOCK_EXPIRE, TimeUnit.SECONDS); if (locked) { // do something } else { throw new BizException(InstallErrorCode.WAIT_A_MOMENT); } } catch (InterruptedException e) { logger.info(e.getMessage()); } finally { lock.unlock(); }