springboot整合redis修改分区

springboot整合redis修改分区

问题由来

最近使用springboot整合redis,一个系统动态数据源连接不同数据库,缓存使用的redis,那么就需要将不同数据库的数据缓存到redis不同的分区,也就是不同的库中。

老版解决

这里的老版指的是2.0之前的,我使用的1.5.9是ok的。

redis的配置类这里就不贴了,网上很多。

1.使用JedisConnectionFactory修改

@Autowired
JedisConnectionFactory jedisConnectionFactory;

jedisConnectionFactory.setDatabase(database);

2.使用redisTemplate修改

        redisTemplate.getConnectionFactory().getConnection().select(database);

以上两种方式不需要再redis配置类中特意添加bean

新版解决

这里的新版指的是2.0之后的,我用的是2.0.3
redis配置类中需要添加以下bean

    @Bean
    RedisStandaloneConfiguration redisStandaloneConfiguration() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("localhost");
        redisStandaloneConfiguration.setPort(6379);
        redisStandaloneConfiguration.setDatabase(0);
        return redisStandaloneConfiguration;
    }

    @Bean
    JedisConnectionFactory jedisConnectionFactory(RedisStandaloneConfiguration redisStandaloneConfiguration) {
        //redisStandaloneConfiguration.setPassword(RedisPassword.of(password));
        JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofMillis(0));//  connection timeout
        JedisConnectionFactory factory = new JedisConnectionFactory(redisStandaloneConfiguration,
                jedisClientConfiguration.build());
        return factory;
    }

使用RedisStandaloneConfiguration修改

@Autowired
RedisStandaloneConfiguration redisStandaloneConfiguration;

redisStandaloneConfiguration.setDatabase(database);

猜你喜欢

转载自blog.csdn.net/m0_37659871/article/details/81024068