如果记录本来就不存在,我想将带有分数的记录添加到排序集中:
func (r *rDA) InsertIntoSortedSetIfNotExist(value int32, score int32) error {
conn, err := r.pool.GetContext(r.ctx)
if err != nil {
return err
}
defer conn.Close()
_, err = conn.Do("ZADD NX", "some_key", score, value) // err = "ERR command 'ZADD NX' is not supported."
return err
}
但这不适用于错误消息ZADD NX
。
我尝试了一下,但效果不佳:
_, err = conn.Do("ZADD", "some_key", score, value, "NX") // err = "ERR syntax error"
如果有人知道如何使用redigo使用ZADD NX命令,将不胜感激。谢谢!
答案 0 :(得分:0)
您面临的问题是由于NX的放置错误
conn.Do("ZADD", "some_key", "NX",score, value)
redis命令用于NX
ZADD NAME NX 2 'Jhon'
您也可以在https://redis.io/commands/zadd#zadd-options-redis-302-or-greater
中查看文档。ZADD支持在键名称后指定的选项列表 并且在第一个得分参数之前。