Как запустить команду SENTINEL slaves с помощью go-redis? - PullRequest
0 голосов
/ 11 июня 2018

Я настроил Redis-клиент следующим образом:

redisClient := redisclient.NewClient(&redisclient.Options{
    Addr:    <sentinel-pod-IP>:<sentinel-pod-port>,
    Password: "",
    DB:       0,
})

Я выполнил команду SENTINEL slaves <master-name> через:

import redisclient "github.com/go-redis/redis"

......

cmd := redisclient.NewStringSliceCmd("SENTINEL", "slaves", "master-name") 
redisClient.Process(cmd)
slaveInfos, err := cmd.Result()

Однако я получил ошибку при запуске redis: can't parse string reply: \"*40\".

SENTINEL get-master-addr-by-name <master-name> работает для той же настройки клиента.

1 Ответ

0 голосов
/ 22 февраля 2019

У меня была такая же проблема, и я нашел решение на github: https://github.com/go-redis/redis/issues/788

Вам нужно использовать NewSliceCmd, например,

        cmd := redis.NewSliceCmd("sentinel", "slaves", "clusterName-master")
        client.Process(cmd)
        _, err := cmd.Result()
        if err != nil {
            fmt.Printf("Unable to issue `sentinel slaves %s-master ` cmd on (%s): %s", clusterName, err.Error())
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...