ERR 'zadd' 命令的参数数量错误

我发现了这个错误:


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)

        }

如何修复此错误消息?


郎朗坤
浏览 831回答 2
2回答

慕桂英546537

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-redis v7(而不是当前的 v8)中,该函数的签名是: func (c *cmdable) ZAdd(key string, members ...Z) *IntCmd {它使用 Z 而不是(今天)*Z。在您的情况下,您应该通过:&redis.Z{Score: defaultPriority, Member: mb.MessageID}

牛魔王的故事

我试图插入redis.Z{Score: [an int value], Member: code},Redis sorted set但由于该错误而失败。所以我检查了我的逻辑,发现有人用code空字符串调用我的方法。在我的情况下,第一次插入成功,但之后,所有插入都因该错误而失败。我正在使用github.com/go-redis/redis v6.15.6
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go