天天看點

Spring-Data-Redis實戰-配置及基本API(上)Spring-data-redis配置Bean配置

Spring-Data-Redis是Spring-Data項目的一個子項目,主要用于操作Redis,通過Spring-data-redis工具,使得操作Redis以更加面向對象的方式。

Spring-data-redis配置

引入依賴如下

Spring-Data-Redis實戰-配置及基本API(上)Spring-data-redis配置Bean配置

注意版本這裡以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());
}