SpringBoot集成redisson全过程
作者:却诚Salong
本文主要介绍了如何集成Redisson,包括环境配置、引入Redisson的依赖、添加Redisson的配置类以及Redisson的常见使用方法,在类中注入Redisson后,可以获取锁对象和使用,这些都是作者的个人经验,供读者参考
SpringBoot集成redisson
1.首先需要已经集成redis的环境
如何集成redis这里不做描述。
2.引入redisson的依赖
(这里使用的是3.14.1版本)
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.14.1</version> </dependency>
3.添加redisson的配置类
package com.salong.framework.config; import lombok.Data; 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; @Data @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; @Bean public RedissonClient getRedisSon() { Config config = new Config(); String address = new StringBuilder("redis://").append(host).append(":").append(port).toString(); config.useSingleServer().setAddress(address); if (null != password && !"".equals(password.trim())) { config.useSingleServer().setPassword(password); } return Redisson.create(config); } }
其中,我这里使用的是单机的redis,如果是其他方式(主从,哨兵,集群)的话,按照下面的进行修改配置即可。
4.redisson的常见使用
4.1 在类中注入redisson
@Autowired private RedissonClient redissonClient;
4.2 获取锁对象和使用。
public void test(){ //竞争的锁对象名称 RLock lock = redissonClient.getLock("lockName"); //tryLock可以不加参数,不会抛异常,仅尝试获取一次锁对象 //tryLock(5,10,TimeUnit.SECONDS)意思为等待锁对象5秒钟,获取到对象10秒钟后释放锁对象,调用此方法会抛出异常 if (lock.tryLock()){ try { //处理业务逻辑代码...... }finally { lock.unlock(); } } //lock.isLocked()误区:此方法不是判断当前线程是否被锁定,而是判断该锁对象当前是否被任意线程所持有。 // 所以不能使用if(lock.isLocked()){lock.unlock();}的写法来释放锁。 boolean locked = lock.isLocked(); //当前线程释放锁对象 lock.unlock(); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。