Spring-Data-Redis是Spring-Data项目的一个子项目,主要用于操作Redis,通过Spring-data-redis工具,使得操作Redis以更加面向对象的方式。
Spring-data-redis配置
引入依赖如下

注意版本这里以2.1.16.RELEASE。
Bean配置
在Spring Boot 2.X中,有两种不同的使用操作,一种是使用Jedis,一种是使用Lettuce,现在主流后者。
连接池的配置
@Bean
public JedisPoolConfig poolConfig() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(100);
poolConfig.setMaxWaitMillis(30 * 1000);
poolConfig.setMinIdle(20);
poolConfig.setMaxIdle(40);
poolConfig.setTestWhileIdle(true);
return poolConfig;
}
连接工厂配置
1.x可以直接通过JedisConnectionFactory,设置各种配置信息,但是在2.x之后,所有的set方法都被标注为过期了。通过查看JedisConnectionFactory的构造方法也可以看出,所以,如果是使用单机版的Redis的话,需要配置一下两个内容
public JedisConnectionFactory(
RedisStandaloneConfiguration standaloneConfig, JedisClientConfiguration clientConfig) {}
当然,可以不配置连接池信息,这里连接池的配置也是有区别与1.x,使用的是JedisClientConfiguration进行配置
@Bean
public RedisStandaloneConfiguration redisStandaloneConfiguration() {
RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
configuration.setHostName(host);
configuration.setPassword(RedisPassword.of(password));
configuration.setPort(port);
return configuration;
}
@Bean
public JedisClientConfiguration clientConfiguration() {
JedisClientConfiguration.JedisClientConfigurationBuilder builder = JedisClientConfiguration.builder();
return builder.usePooling()
.poolConfig(poolConfig())
.build();
}
请特别留意上面的JedisClientConfiguration的配置,通过builder来构造,然后使用usePooling()以及poolConfig()来配置连接池信息,网上很多的直接构造一个JedisPool的bean的方案在2.x中是不生效的,不信的话,断点查看一下连接池信息,还是默认的方式。
@Bean
public JedisConnectionFactory redisConnectionFactory() {
return new JedisConnectionFactory(redisStandaloneConfiguration(), clientConfiguration());
}