一、创建springboot项目
1.通过idea创建springboot项目
2.通过web网站创建springboot项目
创建完之后的项目结构如下:
二、引入redisson依赖
由于我们是springboot整合redisson,所以我们只需引入springboot-redisson-starter就可以了,不过这里需要注意springboot与redisson的版本,因为官方推荐redisson版本与springboot版本配合使用。
将 Redisson 与 Spring Boot 库集成。取决于Spring Data Redis模块,支持 Spring Boot 1.3.x - 2.4.x
这句话是官方说的,不过现在的2.5.x也是支持的,只需要注意springboot最低版本不要低于1.3.x即可。
好了,现在我们开始引入redisson-spring-boot-starter:
maven:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.6</version>
</dependency>
Gradle
compile 'org.redisson:redisson-spring-boot-starter:3.15.6'
我们再来看看redisson-spring-data与Spring Boot version的版本对应关系
redisson-spring-data module name | Spring Boot version |
---|---|
redisson-spring-data-16 | 1.3.x |
redisson-spring-data-17 | 1.4.x |
redisson-spring-data-18 | 1.5.x |
redisson-spring-data-20 | 2.0.x |
redisson-spring-data-21 | 2.1.x |
redisson-spring-data-22 | 2.2.x |
redisson-spring-data-23 | 2.3.x |
redisson-spring-data-24 | 2.4.x |
如何查看 我引入的redisson中 redisson-spring-data 版本呢?
找到我们引入的 redisson-spring-boot-starter,ctrl+左键进入,然后在:redisson-spring-boot-starter-3.15.6.pom 里面就能找到 redisson-spring-data。
三、redisson配置文件
1.yaml文件配置
我习惯使用 yml 文件,所以我将 resources 目录下的 application.properties 改成了 application.yml。
spring:
application:
name: springboot-redisson
redis:
redisson:
file: classpath:redisson.yml
server:
port: 9888
redisson.yml
singleServerConfig:
password: 123456
address: "redis://127.0.0.1:6379"
database: 1
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.FstCodec> {}
transportMode: "NIO"
这是通过读文件的方式加载的,这里会存在一个问题,redisson-spring-boot-starter较高的时候如果引入的编码是:org.redisson.codec.FstCodec ,那么恭喜你,程序启动的时候将会抛出:
低版本则不存在这个问题,也很好解决,只需要引入对应的依赖即可
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.57</version>
</dependency>
然后再启动,就不会抛出异常了,这个时候你可能就会有疑问了,这样虽然方便,但是我在使用springcloud项目的时候 application.yml 的配置文件都被放到了配置中心,现在这种方式都是写死再代码中,如果redis地址发生变更,那岂不是还需要去改动代码?没错,如果按照这种方式,redis发生改变的时候确实需要改动代码,如果想实现不改动代码就能应对redis的密码或者ip变更,那么你可以尝试使用下面这种方式。
2.直接写在 application.yml 文件中
spring:
application:
name: springboot-redisson
redis:
redisson:
config: |
singleServerConfig:
password: 123456
address: "redis://127.0.0.1:6379"
database: 1
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.FstCodec> {}
transportMode: "NIO"
server:
port: 9888
这样就可以了。实际开发过程中还会用到许多的参数,比如:连接超时时间、最小空闲连接数等等,请参考:rediss常用参数
3.程序配置
新建配置类:RedissonConfig
package com.nlx.redisson.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.redisson.config.SingleServerConfig;
import org.redisson.config.TransportMode;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient redissonClient(){
Config config = new Config();
config.setTransportMode(TransportMode.NIO);
SingleServerConfig singleServerConfig = config.useSingleServer();
//可以用"rediss://"来启用SSL连接
singleServerConfig.setAddress("redis://127.0.0.1:6379");
singleServerConfig.setPassword("123456");
RedissonClient redisson = Redisson.create(config);
return redisson;
}
}
上面的这三种配置方式,你只需要选择其中的一种即可,按照自己的需求选择。
三、测试
package com.nlx.redisson;
import org.junit.jupiter.api.Test;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringbootRedissonApplicationTests {
@Autowired
private RedissonClient redissonClient;
@Test
void contextLoads() {
redissonClient.getBucket("hello").set("bug");
String test = (String) redissonClient.getBucket("hello").get();
System.out.println(test);
}
}
到这里,springboot整合redisson就大功告成了,如果觉得对你帮助,还希望可以点个关注,感谢支持。