如何在Go语言中使用ZAddArgs

nhaq1z21  于 2023-03-21  发布在  Go
关注(0)|答案(1)|浏览(147)

我正在使用https://github.com/redis/go-redis/包。我正在尝试使用zaddGT选项。我在commands_test.go中发现一个单元测试,它使用ZAddArgs方法来使用GT选项:

// Test only the GT+LT options.
added, err := client.ZAddArgs(ctx, "zset", redis.ZAddArgs{
   GT:      true,
   Members: []redis.Z{{Score: 1, Member: "one"}},
}).Result()

当我在代码中应用同样的策略时,我从Redis得到一个错误:syntax error没有其他解释。我做错了什么吗?这是我的代码:

score := 50
member := "Tester"
members := []redis.Z{{Score: score, Member: member}}
_, err := client.ZAddArgs(ctx, config.Key, redis.ZAddArgs{
    GT: true,
    Members: members,
}).Result()

if err != nil {
    panic(err.Error()) // results in "ERR syntax error"
}
b4qexyjb

b4qexyjb1#

看起来这是Redis版本的问题。它必须是最低6.2.0。对于任何正在寻找解决方案的人:
1.使用ZSCORE member检索当前分数
1.比较现有分数与新分数
1.如果新分数更高,则更新

相关问题