I set up Redis client as follow:
redisClient := redisclient.NewClient(&redisclient.Options{
Addr: <sentinel-pod-IP>:<sentinel-pod-port>,
Password: "",
DB: 0,
})
I ran SENTINEL slaves <master-name> command via:
import redisclient "github.com/go-redis/redis"
......
cmd := redisclient.NewStringSliceCmd("SENTINEL", "slaves", "master-name")
redisClient.Process(cmd)
slaveInfos, err := cmd.Result()
However, I got an error running redis: can't parse string reply: \"*40\".
SENTINEL get-master-addr-by-name <master-name> works for same client setup.
Can you try NewSliceCmd("SENTINEL", "slaves", "master-name")?
@vmihailenco Thank you for the pointer! I managed to get the slave info:
cmd := redisclient.NewSliceCmd("SENTINEL", "slaves", "master-name")
redisClient.Process(cmd)
slaveInfoBlobs, err := cmd.Result()
......
for _, slaveInfoBlob := range slaveInfoBlobs {
slaveInfo := reflect.ValueOf(slaveInfoBlob)
slaveIP := fmt.Sprintf("%+v", slaveInfo.Index(<some-index>))
......
}
Most helpful comment
Can you try
NewSliceCmd("SENTINEL", "slaves", "master-name")?