Redis忙时读取超时异常

时间:2019-06-28 09:47:55

标签: java spring redis timeout spring-data-redis

我有一个Spring Boot应用程序,用于获取事务数据并将其设置为Redis缓存。该应用程序每天的交易量为1000万。我们的redis实例具有默认配置,并且没有哨兵,并且集群配置已禁用。日常事务正在按预期方式进行和从redis获取。我也有一个简单的rest控制器,用于删除数据并在持久化数据后重做。当我在运行时调用此api时出现读取超时异常。我正在使用jedis客户端连接到Redis。

我的redis配置类;

ReservedCodeSpace

当我调用以下代码行时发生异常;

public class RedisConfiguration {

    @Autowired
    Environment environment;

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }

    @Bean
    JedisConnectionFactory jedisConnectionFactory() {
        String host = environment.getProperty("redis.host");
        String portStr = environment.getProperty("redis.port");
        int port=6379;
        if(portStr!=null) {
            port=Integer.valueOf(portStr);
        }
        String passwordStr = environment.getProperty("redis.password");
        RedisPassword password = RedisPassword.of(passwordStr);
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(host,port);
        redisStandaloneConfiguration.setPassword(password);
        return new JedisConnectionFactory(redisStandaloneConfiguration);
    }
}

我正在使用默认的连接池配置。在属性中只有redis连接主机端口用户名和密码信息。当我调用上述方法时,出现以下错误;

public void lastSixMonthAmountCacheScheduler() {
       cacheRepository.deleteAll();
     }

我的Redis配置类中是否有任何问题,并且在负载默认Redis连接池下无法正常工作?

0 个答案:

没有答案