SpringBoot整合Redisson实战(通过redisson-spring-boot-starter)
SpringBoot整合Redisson实战(通过redisson-spring-boot-starter)
点进来看整合的小伙伴肯定都了解Redisson的概念和背景了,这里就直接开始;
SpringBoot整合Redisson有个比较好用的starter包就是redisson-spring-boot-starter,这也是官方比较推荐的配置方式,本文就使用redisson-spring-boot-starter来配置一个RedissonClient。
Maven依赖
<!--redisson--> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.13.6</version> <exclusions> <exclusion> <groupId>org.redisson</groupId> <artifactId>redisson-spring-data-23</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-data-21</artifactId> <version>3.13.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
关于版本,直接去官网找下最新版即可,通过 redisson-spring-data-xx来适配spring的版本
上图就是适配spring2.x版本的配置;
PS: 这边也要引一下redis,redisson与redis在项目中都要用到
配置实践
edisson-spring-boot-starter这个包下只有3个类,源码比较易读,基本上看着代码就可以配置就可以了,这里就配置一套单节点的redis,采用.yml文件的格式;
上述的官网中给出了配置模板,所有的配置项都给出来了,这里给出一个比较简洁的实践:
application.yml 文件
spring.redis: enable: true # Connection URL, will override host, port and password (user will be ignored), e.g. redis://user:password@example.com:6379 url: 配置你的地址 timeout: 2000 # 连接或读取超时时长(毫秒) database: 7 redisson: file: classpath:redisson.yml jedis: pool: max-active: 8 # 连接池最大连接数(使用负值表示没有限制) max-wait: 800 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-idle: 8 # 连接池中的最大空闲连接 min-idle: 2 # 连接池中的最小空闲连接
这里通过spring.redis.redisson.file 来指定redisson的配置文件名称,和redis的配置分开放,这样做的好处就是比较清晰
redisson.yml 文件
# 单节点配置 singleServerConfig: # 连接空闲超时,单位:毫秒 idleConnectionTimeout: 10000 # 连接超时,单位:毫秒 connectTimeout: 10000 # 命令等待超时,单位:毫秒 timeout: 3000 # 命令失败重试次数,如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。 # 如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时。 retryAttempts: 3 # 命令重试发送时间间隔,单位:毫秒 retryInterval: 1500 # 密码 password: redis.shbeta # 单个连接最大订阅数量 subscriptionsPerConne 56c ction: 5 # 客户端名称 clientName: axin # # 节点地址 address: redis://redis.shbeta@m-redis-k8s.shbeta.ke.com:36479 # 发布和订阅连接的最小空闲连接数 subscriptionConnectionMinimumIdleSize: 1 # 发布和订阅连接池大小 subscriptionConnectionPoolSize: 50 # 最小空闲连接数 connectionMinimumIdleSize: 32 # 连接池大小 connectionPoolSize: 64 # 数据库编号 database: 6 # DNS监测时间间隔,单位:毫秒 dnsMonitoringInterval: 5000 # 线程池数量,默认值: 当前处理核数量 * 2 #threads: 0 # Netty线程池数量,默认值: 当前处理核数量 * 2 #nettyThreads: 0 # 编码 codec: !<org.redisson.codec.JsonJacksonCodec> {} # 传输模式 transportMode : "NIO"
可以看到我再这里边配置 database: 6 ,当你使用 RedissonClient 时,会操作 redis 的 第6个分区。使用 RedisTemplate 则会操作第7个分区,在生产中最好配置一致。
配置的时候是参照 Config.java 这个类配置的,这个类在 package org.redisson.config 下;如果你想配置集群模式的Redisson,就点 Config 的成员变量 ClusterServersConfig 去看下里边有哪些可配置项;
使用 RedissonClient
配置好后,就可以直接在项目中注入 RedissonClient 就可以了
样例如下:
< 56c pre>@RestController public class RedissonController { @Autowired private RedissonClient redissonClient; @GetMapping(value = "/redisson/{key}") public String redissonTest(@PathVariable("key") String lockKey) { RLock lock = redissonClient.getLock(lockKey); try { lock.lock(); Thread.sleep(10000); } catch (Exception e) { } finally { lock.unlock(); } return "已解锁"; } }
- spring boot 整合mybatis 通过官方mybatis-spring-boot-starter
- SpringBoot整合SpringMVC、Druid连接池、mybatis、通用mapper实战
- spring-boot整合dubbo:Spring-boot-dubbo-starter
- springboot+rabbitMq整合开发实战一
- Spring Boot+Shiro+Redis(redisson)整合时,采用内嵌tomcat启动错误原因分析
- RabbitMQ实战(一)Spring Boot 整合 RabbitMQ
- 二、springBoot 整合 mybatis 项目实战
- 【备忘】2017年最新 项目实战 Spring Boot视频教程 微服务整合Mybatis
- Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合
- Spring Boot整合RabbitMQ开发实战详解
- Spring Boot+Shiro+Redis(redisson)整合时,采用内嵌tomcat启动错误原因分析
- 二、springBoot 整合 mybatis 项目实战
- SpringBoot实战(十四)之整合KafKa
- Spring boot整合JPA:添加spring-boot-starter-data-jpa 依赖报错 解决方法
- Spring Boot实战之定制自己的starter
- springboot整合shiro-spring-boot-web-starter实现前后端分离的跨域问题
- Spring Boot整合mybatis 实战一步步
- Spring Boot+Shiro+Redis(redisson)整合时,采用内嵌tomcat启动错误原因分析
- Spring Boot 实战:整合 MyBatis、Quartz
- springboot整合redis 通过ehcache完成自动缓存 功能