当前位置:   article > 正文

Redisson集成SpringBoot

redisson集成springboot

前言:Redisson集成SpringBoot主要有两种方式,一个是使用redisson-spring-boot-starter依赖(优先推荐),毕竟springboot主打的就是约定大于配置,这个依赖就是为springboot准备的。

再一种方式就是引入redisson原始依赖,自己写配置类注入到spring容器中,这种太麻烦没必要。

这里主要记录一下第一种方式,先看官网介绍redisson/redisson-spring-boot-starter at master · redisson/redisson · GitHub

首先关于版本对应关系的问题,目前发现sprinBoot2.3.x版本使用redisson-spring-boot-starter 3.30.0版本是没问题的。
官方说了:redisson-spring-boot-starter与Spring Boot的版本兼容是通过redisson-spring-boot-starter中引入的redisson-spring-data模块来做的,如果需要,降级redisson-spring-data模块以支持以前的Spring Boot版本。

 也就是说,如果发现不兼容问题,可以通过降低redisson-spring-data依赖的版本来解决。

具体做法就是:引入依赖后,排出高版本的redisson-spring-data,再引入低版本的即可。

下图可以看到,redisson-spring-boot-starter的pom文件中引入了redisson-spring-data-x。

下面开始

一、添加依赖

  1. <!-- redisson 依赖 -->
  2. <dependency>
  3. <groupId>org.redisson</groupId>
  4. <artifactId>redisson-spring-boot-starter</artifactId>
  5. <version>3.30.0</version>
  6. </dependency>

二、配置文件添加配置

配置文件主要有两种方式:

第一种是直接使用spring-boot-starter-data-redis的配置,redisson完全兼容spring-boot-starter-data-redis的配置,打开redisson-spring-boot-starter 的pom文件可以看到,他也是引入了spring-boot-starter-data-redis的依赖。

第二可以使用redisson自己的配置方式。

官网两种配置方式都有示例。

这里就直接使用spring-boot-starter-data-redis的配置,这种方式比较简单。

  1. spring:
  2. application:
  3. name: demo # 应用名称
  4. #### Redisson配置,兼容spring-boot-starter-data-redis的配置
  5. redis:
  6. jedis:
  7. # 连接池配置,如果不配置就会使用默认值
  8. pool:
  9. #最大连接数
  10. max-active: 50
  11. #最大阻塞等待时间(负数表示没限制)
  12. max-wait: 20000
  13. #最大空闲连接
  14. max-idle: 10
  15. #最小空闲连接
  16. min-idle: 1
  17. database: 0
  18. host: 127.0.0.1
  19. port: 6379
  20. ssl: false
  21. #连接超时时间(毫秒)
  22. timeout: 3000
  23. ########### 集群模式
  24. # cluster:
  25. # nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
  26. ########### 哨兵模式
  27. # sentinel:
  28. # master: mymaster # Sentinel中配置的主节点名称
  29. # nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379

如果要使用redisson自己的配置方式,参考官网即可,官网两种就有示例。

三、代码示例

  1. @Autowired
  2. RedissonClient redissonClient;
  3. public void testLock() {
  4. //获取锁对象
  5. RLock lock = redissonClient.getLock("zhh-lock");
  6. //设置锁过期时间,防止死锁的产生
  7. boolean lockFlag = false;
  8. try {
  9. lockFlag = lock.tryLock(10, 10, TimeUnit.SECONDS);
  10. System.out.println("加锁状态:" + lockFlag);
  11. // 测试一下,添加一个键值对
  12. RBucket<String> bucket = redissonClient.getBucket("key1");
  13. bucket.set("value1");
  14. System.out.println(bucket.get());
  15. // 删除键值对
  16. bucket.delete();
  17. } catch (InterruptedException e) {
  18. System.out.println("加锁出现异常");
  19. e.printStackTrace();
  20. } finally {
  21. if (lockFlag) {
  22. lock.unlock();
  23. System.out.println("释放锁成功");
  24. }
  25. }
  26. }

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

闽ICP备14008679号