将ZADD与选项标志一起使用

时间:2020-09-23 07:54:41

标签: go redis

如果记录本来就不存在,我想将带有分数的记录添加到排序集中:

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命令,将不胜感激。谢谢!

1 个答案:

答案 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支持在键名称后指定的选项列表 并且在第一个得分参数之前。