Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis JedisConnectionFactory setHostName已弃用_Redis_Spring Data_Jedis - Fatal编程技术网

Redis JedisConnectionFactory setHostName已弃用

Redis JedisConnectionFactory setHostName已弃用,redis,spring-data,jedis,Redis,Spring Data,Jedis,这将是我第一次将Spring连接到Redis。绝地连接工厂的文档: 提供以下代码: @Bean JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(); jedisConFactory.setHostName("localhost"); jedisConFactor

这将是我第一次将Spring连接到Redis。绝地连接工厂的文档:

提供以下代码:

@Bean
JedisConnectionFactory jedisConnectionFactory() {
    JedisConnectionFactory jedisConFactory
            = new JedisConnectionFactory();

    jedisConFactory.setHostName("localhost");
    jedisConFactory.setPort(6379);
    return jedisConFactory;
}
看起来不错,但是我的IDE告诉我setHostName和setPort方法已经被弃用了(尽管我使用的是教程中的版本)


我想知道是否有人有一个简单的“获取连接到redis的spring数据”示例,该示例使用了未弃用的API调用?

对于spring数据redis 2.0,这些方法已弃用。 您现在需要使用RedisStandaloneConfiguration进行配置

参考:

例如:

JedisConnectionFactory jedisConnectionFactory() {
    RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration("localhost", 6379);
    redisStandaloneConfiguration.setPassword(RedisPassword.of("yourRedisPasswordIfAny"));
    return new JedisConnectionFactory(redisStandaloneConfiguration);
}

除了唐乐的回应之外

您可以通过添加以下行来配置超时读取操作:

jedisClientConfigurationBuilder.readTimeout(持续时间为秒(1))

这是使用时可以获得的值:

jedisConFactory.getTimeout()


您可以发布有关jedisClientConfiguration的详细信息吗?因此,application.properties(如
spring.redis.password
spring.redis.host
将无法工作,您必须通过代码对其进行配置?@xref一些应用程序可能同时具有多个redis连接,因此必须以编程方式对其进行配置。
@Bean
    JedisConnectionFactory jedisConnectionFactory() {

        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("localhost");
        redisStandaloneConfiguration.setPort(6379);
        redisStandaloneConfiguration.setDatabase(0);
        redisStandaloneConfiguration.setPassword(RedisPassword.of("password"));

        JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofSeconds(60));// 60s connection timeout

        JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(redisStandaloneConfiguration,
                jedisClientConfiguration.build());

        return jedisConFactory;
    }