1、pom文件加入依赖
<!--spring-boot-starter-data-redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>
2、application.yml配置文件添加配置
spring:
redis:
# IP
host: IP
# 端口
port: 6379
# 数据库索引
database: 0
# 密码
password: 密码
# 连接超时时间
timeout: 5000
jedis:
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 200
# 连接池中的最大空闲连接
max-idle: 50
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 连接池中的最小空闲连接
min-idle: 10
3、新建配置类或者改为工具类即可
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Slf4j
@Configuration
public class RedisConfig {
@Value("${spring.redis.port}")
private Integer port;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.timeout}")
private Integer timeout;
@Value("${spring.redis.database}")
private Integer database;
@Value("${spring.redis.jedis.pool.max-idle}")
private Integer maxIdle;
@Value("${spring.redis.jedis.pool.max-active}")
private Integer maxActive;
@Value("${spring.redis.jedis.pool.min-idle}")
private Integer minIdle;
@Bean
public Jedis jedis(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大空闲连接数
jedisPoolConfig.setMaxIdle(maxIdle);
// 最大连接数
jedisPoolConfig.setMaxTotal(maxActive);
// 最小空闲连接数
jedisPoolConfig.setMinIdle(minIdle);
// 连接空闲多久后释放,当空闲时间大于该值且空闲连接大于最大空闲连接数时直接释放连接线程
jedisPoolConfig.setSoftMinEvictableIdleTimeMillis(10000);
// 连接最小空闲时间
jedisPoolConfig.setMinEvictableIdleTimeMillis(1800000);
// 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1
jedisPoolConfig.setMaxWaitMillis(-1);
// 在获取连接的时候检查有效性, 默认false
jedisPoolConfig.setTestOnBorrow(true);
// 在空闲时检查有效性, 默认false
jedisPoolConfig.setTestWhileIdle(true);
// 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
jedisPoolConfig.setBlockWhenExhausted(false);
if (password.isEmpty()) {
password = null;
}
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password, database);
log.info("redis连接成功-{}:{}", host, port);
Jedis jedis = jedisPool.getResource();
return jedis;
}
}