1.添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.配置yml文件
server:
port: 8082
spring:
redis:
host: 192.168.64.133 #redis服务器地址
port: 6379 #redis服务器连接端口
database: 0 #redis数据库索引(默认为0)
timeout: 1800000 #连接超时时间(毫秒)
lettuce:
pool:
max-active: 20 #连接池最大连接数
max-wait: -1 #最大阻塞等待时间(负数表示没有限制)
max-idle: 5 #连接池中的最大空闲连接
min-idle: 0 #连接池中的最小空闲连接
password:
3.JedisConfiguration配置类
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties({JedisConnectionProperties.class})
public class JedisConfiguration {
/**
* 多节点
*
* @param connection
* @return
*/
// @Bean
// public JedisConnectionFactory redisConnectionFactory(JedisConnectionProperties connection) {
// RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
// .master("mymaster")
// .sentinel("127.0.0.1", 26379)
// .sentinel("127.0.0.1", 26380);
// return new JedisConnectionFactory(sentinelConfig);
// }
@Bean
public JedisConnectionFactory redisConnectionFactory(JedisConnectionProperties connection) {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(connection.getHost(), connection.getPort());
String pwd = connection.getPassword();
if (!(pwd == null || "".equals(pwd))) {
config.setPassword(RedisPassword.of(pwd));
}
config.setDatabase(connection.getDatabase());
return new JedisConnectionFactory(config);
}
/**
* 读写分离配置
*
* @return
*/
// @Bean
// public LettuceConnectionFactory redisConnectionFactory() {
// LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder().readFrom(ReadFrom.REPLICA_PREFERRED)
// .build();
//
// RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration("server", 6379);
//
// return new LettuceConnectionFactory(serverConfig, clientConfig);
// }
@Bean
@SuppressWarnings({"r