Redis 客户端未通过 HAProxy 连接到 Redis 服务器

标签 redis haproxy jedis sentinel redis-sentinel

我在使用 Jedis 作为 Redis 客户端通过 HAProxy 连接到 Redis 服务器时遇到了问题。 当直接连接到 Redis 服务器时,一切正常,但通过 HAProxy 却无法正常工作。 HAProxy 和 Redis 服务都在其特定端口上运行,HAProxy 在端口 80 上运行,Redis 服务器在 6379 上运行。 我们在 EC2 实例上运行此设置,并且所有必要的端口都已打开。

HAProxy 配置为

frontend http-in
bind *:80
default_backend redis-server

backend redis-server
    stats   enable
    server redis-server1 x.x.x.x:6379 check inter 1000 fall 3 rise 2
    server redis-server2 x.x.x.x:6379 check inter 1000 fall 3 rise 2

Jedis Clinet 代码是:

 try {
    Jedis jedis = new Jedis(hostname, port);
    jedis.set("key", "Redis-Test-Value");
    System.out.println("value from redis node is: " + jedis.get("key"));
} catch (Exception e) {
    System.out.println("exception is " + e);
}

抛出的异常消息是 - redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: H

有人能指出我遗漏了什么并指出正确的方向吗?

最佳答案

frontend http-in

Redis 不是 HTTP 服务器,因此将其作为一个服务器提供是行不通的。由于这是服务器管理问题,而不是编程问题,请尝试列表或 serverfault.com 以解决任何其他问题。

关于Redis 客户端未通过 HAProxy 连接到 Redis 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862592/

相关文章:

magento - 与 magento CE 1.8 连接时的随机 redis 错误

haproxy - HA Proxy 支持 http 模式下的 HTTP/2 后端服务器

java - Redis - key HASH 和 SET 以及 ZSET 如何与 CrudRepository 保存相关?

tomcat - tomcat知道haproxy是代理服务器吗?

java - 如何将 SQL 表转换为 Redis 数据

java - 如何在Jedis中启用负载平衡?

ruby-on-rails - Redis `CLIENT KILL TYPE pubsub` ruby 中的等效命令

database - redis数据是存储为sds还是对象?

Redis Pub/Sub 当 sub 是自动缩放组的一部分时

web-services - 如何向负载均衡的 HTTP Web 服务添加持久连接支持