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 地址上,我的问题就解决了。
我想通过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 地址上,我的问题就解决了。