Snc_redis 错误地重定向到 127.0.0.1

Snc_redis wrongly redirect to 127.0.0.1

我想通过HA连接到redis集群。我的配置是这样的:

snc_redis:
    clients:
        cluster_test_ha:
            type: predis
            alias: cluster_test_ha
            dsn: "%redis_cluster_ha_address%"
            options:
                replication: false
                cluster: 'redis'
                connection_timeout: 10
                read_write_timeout: 10

我是这样使用它的:

$redisClient = $this->getContainer()->get('snc_redis.cluster_test_ha');
try {
       $key="test125412";
       $redisClient->set($key, 12);
} catch (\Throwable $e) {
    dump($e->getMessage());
}

当我连接到 $key 将被持久化的节点时就可以了。但是当 redis 向另一个节点发送重定向时,它会尝试连接到 127.0.0.1 而不是 redis 服务器 ip,所以我得到这个异常:

Connection refused [tcp://127.0.0.1:7002]

我正在使用 snc_redis v 2.1.13

P.S: 我用rediscli试了一下,重定向正确,所以redis这边好像没有问题。

我发现问题出在redis这边。节点在正确的 ip 地址上知道其他节点,但在 127.0.0.1 上知道自己。你可能会在这里看到(我用 redis server ip 标签屏蔽了真实的 ip 地址):

所以我只是连接到每个节点并使其 meet 本身位于正确的 ip 地址(而不是 127.0.0.1)。如您所见,之后它发现自己在正确的 IP 地址上,我的问题就解决了。