使用带有选项标志的 ZADD

如果记录首先不存在,我正在尝试将带有分数的记录添加到排序集中:


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


慕慕森
浏览 105回答 1
1回答

喵喔喔

您面临的问题是由于 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 支持选项列表,在键名之后和第一个分数参数之前指定。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go