当前位置:   article > 正文

SpringBoot集成redisson

SpringBoot集成redisson

1.首先需要已经集成redis的环境,如何集成redis这里不做描述。

2.引入redisson的依赖。(这里使用的是3.14.1版本)

  1. <dependency>
  2. <groupId>org.redisson</groupId>
  3. <artifactId>redisson</artifactId>
  4. <version>3.14.1</version>
  5. </dependency>

3.添加redisson的配置类。

  1. package com.salong.framework.config;
  2. import lombok.Data;
  3. import org.redisson.Redisson;
  4. import org.redisson.api.RedissonClient;
  5. import org.redisson.config.Config;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. @Data
  10. @Configuration
  11. public class RedissonConfig {
  12. @Value("${spring.redis.host}")
  13. private String host;
  14. @Value("${spring.redis.port}")
  15. private String port;
  16. @Value("${spring.redis.password}")
  17. private String password;
  18. @Bean
  19. public RedissonClient getRedisSon() {
  20. Config config = new Config();
  21. String address = new StringBuilder("redis://").append(host).append(":").append(port).toString();
  22. config.useSingleServer().setAddress(address);
  23. if (null != password && !"".equals(password.trim())) {
  24. config.useSingleServer().setPassword(password);
  25. }
  26. return Redisson.create(config);
  27. }
  28. }

其中,我这里使用的是单机的redis,如果是其他方式(主从,哨兵,集群)的话,按照下面的进行修改配置即可。

 4.redisson的常见使用。

  4.1  在类中注入redisson

  1. @Autowired
  2. private RedissonClient redissonClient;

4.2 获取锁对象和使用。

  1. public void test(){
  2. //竞争的锁对象名称
  3. RLock lock = redissonClient.getLock("lockName");
  4. //tryLock可以不加参数,不会抛异常,仅尝试获取一次锁对象
  5. //tryLock(5,10,TimeUnit.SECONDS)意思为等待锁对象5秒钟,获取到对象10秒钟后释放锁对象,调用此方法会抛出异常
  6. if (lock.tryLock()){
  7. try {
  8. //处理业务逻辑代码......
  9. }finally {
  10. lock.unlock();
  11. }
  12. }
  13. //lock.isLocked()误区:此方法不是判断当前线程是否被锁定,而是判断该锁对象当前是否被任意线程所持有。
  14. // 所以不能使用if(lock.isLocked()){lock.unlock();}的写法来释放锁。
  15. boolean locked = lock.isLocked();
  16. //当前线程释放锁对象
  17. lock.unlock();
  18. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/853065
推荐阅读
相关标签
  

闽ICP备14008679号