Я использую 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, но если это так, я думаю, что не очень хорошо с точки зрения производительности