Go 使用带有选项标志的ZADD
如果记录在第一位不存在,我将尝试向排序集中添加一个带有分数的记录:Go 使用带有选项标志的ZADD,go,redis,Go,Redis,如果记录在第一位不存在,我将尝试向排序集中添加一个带有分数的记录: func(r*rDA)InsertIntoSortedSetIfNotExist(值int32,分数int32)错误{ conn,err:=r.pool.GetContext(r.ctx) 如果错误!=零{ 返回错误 } 延迟连接关闭() _,err=conn.Do(“ZADD NX”,“some_key”,score,value)//err=“err”不支持命令“ZADD NX” 返回错误 } 但是,这不适用于表示不支持ZA
func(r*rDA)InsertIntoSortedSetIfNotExist(值int32,分数int32)错误{
conn,err:=r.pool.GetContext(r.ctx)
如果错误!=零{
返回错误
}
延迟连接关闭()
_,err=conn.Do(“ZADD NX”,“some_key”,score,value)//err=“err”不支持命令“ZADD NX”
返回错误
}
但是,这不适用于表示不支持ZADD NX
的错误
我试过这个,但效果不太好:
,err=conn.Do(“ZADD”,“some_key”,score,value,“NX”)//err=“err语法错误”
如果有人知道如何使用redigo使用ZADD NX命令,将不胜感激。谢谢 您面临的问题是由于NX的位置错误造成的
conn.Do("ZADD", "some_key", "NX",score, value)
对于NX,redis的命令是这样使用的
ZADD NAME NX 2 'Jhon'
您还可以在以下位置签出文档:
ZADD支持在密钥名称后指定的选项列表
在第一次得分辩论之前
尝试conn.Do(“ZADD”,“some_key”,“NX”,score,value)这样,您已经尝试了
conn.Do(“ZADD”,“NX”,“some_key”,score,value)
,但它不起作用?@kostix Nope返回语法错误为well@ShubhamSrivastava是的,那条线确实管用。不知道NX标志需要放在那里。。。谢谢@我已经根据我的评论添加了一个详细的答案,希望能有所帮助!