ERR неверное количество аргументов для команды 'zadd' - PullRequest
1 голос
/ 22 марта 2020

Я нашел эту ошибку:

ERR wrong number of arguments for 'zadd' command in golang.

Это мой код:

defaultPriority:type String
mb.MessageID:type string
mb.EndpointID: type string

    _, err = mbDal.redisClient.ZAdd(mb.EndpointID, redis.Z{Score: defaultPriority, Member: mb.MessageID})
        if err != nil {
            return fmt.Errorf("failed to add mailbox id %s in redis; error %v", mb.MessageID, err)
        }

Как я могу исправить это сообщение об ошибке?

1 Ответ

0 голосов
/ 23 марта 2020

zadd используется в go-redis/redis и здесь определяется

// Redis `ZADD key score member [score member ...]` command.
func (c cmdable) ZAdd(key string, members ...*Z) *IntCmd {

Перепроверьте свой список зависимостей go.mod.
10 месяцев go, в go -redis v7 (вместо текущей v8), подпись для этой функции была :

 func (c *cmdable) ZAdd(key string, members ...Z) *IntCmd {

В ней вместо Z использовалось ( сегодня) * Z.

В вашем случае вы должны передать:

&redis.Z{Score: defaultPriority, Member: mb.MessageID}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...