Set操作
最后更新于:2022-04-02 04:51:41
Set操作
sadd(key, member):
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回一个错误。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SAdd("k1","a","b","c","d").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
-------------------------------------------------------------
4 //返回插入成功的数目
~~~
srem(key, member) :
移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。
当 key 不是集合类型,返回一个错误。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SRem("k1","c","d").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
~~~
spop(key) :随机返回并删除名称为key的set中一个元素。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SPop("k1").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
~~~
smove(srckey, dstkey, member) :
将 member 元素从 source 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SMove("k1","k2","1").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
------------------------------------------------------
k1原来是1,2,3
k2原来是4,5,6
执行后:
k1是2,3
k2是1,4,5,6
~~~
scard(key) :返回集合 key 的基数(集合中元素的数量)。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SCard("k1").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
~~~
sismember(key, member) :member是否是名称为key的set的元素。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SIsMember("k1",2).Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
-----------------------------------------------------
true
判断2是不是k1的元素,返回true
~~~
sinter(key1, key2,…key N) :求交集。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SInter("k1","k2").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
----------------------------------------------------
k1是1,2,3,6
k2是1,4,5,6
执行结果为:
1,6
~~~
sunion(key1, (keys)) :求并集。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SUnion("k1","k2").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
----------------------------------------------------
k1是1,2,3,6
k2是1,4,5,6
执行结果为:
1,2,3,4,5,6
~~~
sdiff(key1, (keys)) :求差集。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SDiff("k1","k2").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
----------------------------------------------------
k1是1,2,3,6
k2是1,4,5,6
执行结果为:
2,3
~~~
smembers(key) :返回名称为key的set的所有元素。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SMembers("k1").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
~~~
srandmember(key) :随机返回名称为key的set的一个元素。
~~~
func SetTest(redisdb *redis.Client) {
ret,err:=redisdb.SRandMember("k1").Result()
if err!=nil {
fmt.Println(err)
return
}
fmt.Println(ret)
}
~~~
';