我發現了這個錯誤:ERR wrong number of arguments for 'zadd' command in golang.這是我的代碼:defaultPriority:type Stringmb.MessageID:type stringmb.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) }如何修復此錯誤消息?
2 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
// 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}

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
我試圖插入redis.Z{Score: [an int value], Member: code}
,Redis sorted set
但由于該錯誤而失敗。
所以我檢查了我的邏輯,發現有人用code
空字符串調用我的方法。在我的情況下,第一次插入成功,但之后,所有插入都因該錯誤而失敗。
我正在使用
github.com/go-redis/redis v6.15.6
- 2 回答
- 0 關注
- 745 瀏覽
添加回答
舉報
0/150
提交
取消