SpringBoot2.0集成Redis
首先安装的过程就不提了。上一个项目的redis是配置在Windows下的,集成很简单,也没有做什么配置。这次为了进行测试,装在了linux下。在SpringBoot集成的过程中遇到了一些小坑,分享一下。
pom文件中添加依赖
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!--引入Json依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
可以看到除了Redis我还加入了JSON的依赖,这是因为我之后读取出来的数据要转换成JSON串的格式,数据可读,方便开发。
application.properties文件中添加配置
#redis配置
#Linux主机地址
spring.redis.host=192.168.78.131
#端口
spring.redis.port=6379
#超时时间,ms
spring.redis.timeout=3000
#连接池的最大连接数
spring.redis.jedis.pool.max-active=10
#链接的最大等待时间ms
spring.redis.jedis.pool.max-wait=3000
#连接池中的最大的等待数量
spring.redis.jedis.pool.max-idle=10
在SpringBoot2.0的版本中timeout变成了Duration类型的,从其源码中我们可以看一下是怎么定义的:
public void setTimeout(Duration timeout) {
this.timeout = timeout;
}
所以正常的写法应该是:
spring.redis.timeout=3000ms
但是这样也带来了一个问题,下面再说这个问题是什么,这里先按照初始的定义,不会报错的
正常的人可能还会在配置文件中添加redis的密码的配置,没有密码的话就不要添加这个配置,就算默认为空也会导致出现错误,不能实现OAuth认证,要是有密码的话就添加上并写上自己的密码。
spring.redis.password=
Redis的自定义初始化
首先写redisConfig的文件,读取application.properties文件中yml的配置
package com.springboot.SecKill.redis;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
* Redis的配置
* @author WilsonSong
* @date 2018/8/1/001
*/
//作为组件扫描进来
@Component
//读取配置文件
@Configuration
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
private String host;