Redis: SENTINEL slaves does not work

Created on 11 Jun 2018  路  2Comments  路  Source: go-redis/redis

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.

Most helpful comment

Can you try NewSliceCmd("SENTINEL", "slaves", "master-name")?

All 2 comments

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>))
    ......
}
Was this page helpful?
0 / 5 - 0 ratings

Related issues

Turing-Chu picture Turing-Chu  路  3Comments

qiqisteve picture qiqisteve  路  3Comments

youcandoit95 picture youcandoit95  路  3Comments

pmenglund picture pmenglund  路  4Comments

patrickwhite256 picture patrickwhite256  路  7Comments