Как исправить org.springframework.data.redis.RedisConnectionFailureException: java.net.SocketTimeoutException: чтение истекло - PullRequest
0 голосов
/ 01 октября 2018

Я использую Redis для кэширования в моей загрузочной пружине.У меня есть 2 сервера Redis и довольно большая база данных.Если я использую сервер redis, работающий в той же сети, кэш-память нормальная и насчитывает 619 000 пользователей.Но если я использую redis, запущенный на докере и настраивающий расписание на вечер, он всегда выдает сообщение об ошибке: org.springframework.data.redis.RedisConnectionFailureException: java.net.SocketTimeoutException: чтение истекло;Вложенное исключение - redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: тайм-аут чтения:

Я знаю, что это потому, что Redis слишком долго ожидает соединения, поэтомубросить исключение, если объем данных слишком велик.Я провел больше времени с конструктором, но все еще не могу это исправить.Информация следующая:

@Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName(redisHostName);
        jedisConnectionFactory.setPort(redisPort);
        jedisConnectionFactory.setPassword(redisPassword);
        return jedisConnectionFactory;
    }
@Bean
public JedisPool getConfig() {
    JedisPoolConfig config =new JedisPoolConfig();
    JedisPool jedisPool = new JedisPool();
    config.setMaxTotal(100);
    config.setMaxIdle(200);
    config.setMinIdle(50);
    config.setMaxWaitMillis(30000);
    config.setTestOnBorrow(true);
    jedisPool = new JedisPool(config, redisHostName, redisPort,300000,redisPassword);
    return jedisPool;
}

Так как преодолеть проблему.Я установил тайм-аут как -1, но если это так, я думаю, что не очень хорошо с точки зрения производительности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...