Когда я проверяю состояние сервера Redis с помощью systemctl, он подключен к сети и работает без проблем. Я также подключился к клиенту Redis через терминал, используя командную строку на компьютере Linux, на котором он работает, прошел аутентификацию и выполнил PING, в котором был возвращен PONG, чтобы убедиться, что Redis работает.
Конфигурация Redis
У меня есть привязки и requirepass, не закомментированные в redis.conf, и они выглядят следующим образом: (не весь мой конфиг, конечно):
Код: Выделить всё
bind 127.0.0.1
requirepass mypassword
port 6379
Код: Выделить всё
private void setupRedis(RedisCredentials credentials) {
final GenericObjectPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(0);
Jedis jedis;
try (JedisPool pool = new JedisPool(poolConfig, credentials.getIp(), credentials.getPort())) {
jedis = pool.getResource();
}
jedis.auth(credentials.getPassword());
jedis.connect();
log.info("Redis connection was established.")
}
Проверено
Я пробовал следующий код, приведенный выше, несколько раз. Я также попытался перезапустить сервер Redis и снова запустить код, но безуспешно.
Ожидается
Чтобы приложение регистрировало сообщение «Соединение Redis установлено» и не получало ошибок в процессе.
Результат
Консоль регистрирует исключение redis.clients.jedis.Exceptions.JedisConnectionException: не удалось подключиться к любому хосту, разрешенному для DNS-имени, и поэтому приложению явно не удалось установить соединение с Redis .
Подробнее здесь: https://stackoverflow.com/questions/752 ... r-dns-name
Мобильная версия