赞
踩
前言: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。
下面开始
- <!-- redisson 依赖 -->
- <dependency>
- <groupId>org.redisson</groupId>
- <artifactId>redisson-spring-boot-starter</artifactId>
- <version>3.30.0</version>
- </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的配置,这种方式比较简单。
- spring:
- application:
- name: demo # 应用名称
-
- #### Redisson配置,兼容spring-boot-starter-data-redis的配置
- redis:
- jedis:
- # 连接池配置,如果不配置就会使用默认值
- pool:
- #最大连接数
- max-active: 50
- #最大阻塞等待时间(负数表示没限制)
- max-wait: 20000
- #最大空闲连接
- max-idle: 10
- #最小空闲连接
- min-idle: 1
- database: 0
- host: 127.0.0.1
- port: 6379
- ssl: false
- #连接超时时间(毫秒)
- timeout: 3000
- ########### 集群模式
- # cluster:
- # nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
- ########### 哨兵模式
- # sentinel:
- # master: mymaster # Sentinel中配置的主节点名称
- # nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
如果要使用redisson自己的配置方式,参考官网即可,官网两种就有示例。
- @Autowired
- RedissonClient redissonClient;
-
- public void testLock() {
- //获取锁对象
- RLock lock = redissonClient.getLock("zhh-lock");
- //设置锁过期时间,防止死锁的产生
- boolean lockFlag = false;
- try {
- lockFlag = lock.tryLock(10, 10, TimeUnit.SECONDS);
- System.out.println("加锁状态:" + lockFlag);
-
- // 测试一下,添加一个键值对
- RBucket<String> bucket = redissonClient.getBucket("key1");
- bucket.set("value1");
- System.out.println(bucket.get());
- // 删除键值对
- bucket.delete();
- } catch (InterruptedException e) {
- System.out.println("加锁出现异常");
- e.printStackTrace();
- } finally {
- if (lockFlag) {
- lock.unlock();
- System.out.println("释放锁成功");
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。