这是官方的github
https://github.com/redisson/redisson
本文只是实现一个单机版的demo
首先引入maven依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.14.1</version>
</dependency>
我用过Config的方式配置连接池
@Configuration
public class RedissonConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.timeout}")
private int timeout;
@Value("${spring.redis.pool.max-idle}")
private int maxIdle;
@Value("${spring.redis.pool.max-wait}")
private Integer maxWaitMillis;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.block-when-exhausted}")
private boolean blockWhenExhausted;
@Bean
RedissonClient redissonSingle() {
Config config = new Config();
SingleServerConfig singleServerConfig = config.useSingleServer();
//指定库
singleServerConfig.setDatabase(5);
SingleServerConfig serverConfig = singleServerConfig
.setAddress("redis://"+host+":"+port)
.setTimeout(Integer.valueOf(timeout))
.setConnectionMinimumIdleSize(Integer.valueOf(maxIdle));
if(StringUtils.isNotBlank(password)) {
serverConfig.setPassword(password);
}
config.setCodec(new StringCodec());
return Redisson.create(config);
}
}
这样就就配置好了连接池 接下来如何在程序里面使用redisson
@Service
public class redisssonDemoServiceIpml{
@Autowired
private RedissonClient redissonClient;
//锁的密钥
private static final String KEY = "REDIS_LOCK_KEY";
public Boolean redisssonDemo(String params){
//首先先拿到锁链接
RLock fairLock = redissonClient.getLock(KEY);
boolean tryGetLock = false;
try {
//加锁 参数的话可以参考官网给出的解释 这里就不介绍了
tryGetLock = fairLock.tryLock(5,10,TimeUnit.SECONDS);
if(tryGetLock){
//上锁了之后可以进行处理业务逻辑
return Boolean.TRUE;
}
}catch (Exception e){
log.error("redisssonDemo.Exception===>{}", e);
}finally {
//解锁 这里加这个判断的原因就是 只有在当前方法获得了锁才去释放锁
log.info("tryGetLock===>{}",tryGetLock);
if(tryGetLock){
fairLock.unlock();
}
}
return Boolean.FALSE;
}
}
这样就可以项目当中使用redissson 了
复制我的代码 配一下redis配置 跑一下吧~