1.maven中加入pom依赖org.redisson redisson3.11.3
package com.cloud.serviceauthorize.config; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.io.IOException; @Configuration public class RedissonConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private String port; @Value("${spring.redis.password}") private String password; // @Value("spring.redis.cluster.nodes") // private String clusterNodes; //本地启动需要把它注掉开启单机模式 @Value("${spring.redis.cluster.nodes}") private String cluster; @Bean(destroyMethod = "shutdown") public RedissonClient redisson() throws IOException { String[] nodes = cluster.split(","); //redisson版本是3.5,集群的ip前面要加上“redis://”,不然会报错,3.2版本可不加 for(int i=0;i3.增加工具类
package com.cloud.serviceauthorize.util; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @Component public class RedissonUtil { @Autowired private RedissonClient redissonClient; // RedissonClient已经由配置类生成,这里自动装配即可 public RLock lock(String lockKey) { RLock lock = redissonClient.getLock(lockKey); lock.lock(); return lock; } public RLock lock(String lockKey, long leaseTime) { RLock lock = redissonClient.getLock(lockKey); lock.lock(leaseTime, TimeUnit.SECONDS); return null; } public RLock lock(String lockKey, TimeUnit unit, long timeout) { RLock lock = redissonClient.getLock(lockKey); lock.lock(timeout, unit); return lock; } public boolean tryLock(String lockKey, TimeUnit unit, long waitTime, long leaseTime) { RLock lock = redissonClient.getLock(lockKey); try { return lock.tryLock(waitTime, leaseTime, unit); } catch (InterruptedException e) { return false; } } public void unlock(String lockKey) { RLock lock = redissonClient.getLock(lockKey); lock.unlock(); } public void unlock(RLock lock) { lock.unlock(); } }4.测试案例
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)