1.Set
set是string类型的无序集合,其参考来源应该属于STL中的Set。
•set元素最大可以包含(2的32次方-1)个元素。
•set的是通过hash table实现的,hash table会随着添加或者删除自动的调整大小。
2. CRUD
-
smembers:
smembers key 返回key对应set的所有元素,结果是无序的
-
smembers s1
-
sadd:
sadd key member 添加一个string元素到key对应的set集合中,成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误
-
sadd s1 hello
-
srem:
srem key member 从key对应set中移除给定元素,成功返回1,如果member在集合中不存在或者key不存在返回0,如果key对应的不是set类型的值返回错误
-
srem s1 hello
-
spop:
spop key 删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回nil.
-
spop s1
-
srandmember:
srandmember key 同spop,随机取set中的一个元素,但是不删除元素。
-
srandmember s1
-
smove:
smove srckey dstkey member 从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set类型返回错误.
-
smove s1 s2 hello3
-
sismember:
sismember key member 判断member是否在set中,存在返回1,0表示不存在或者key不存在.
-
sismember s1 hello4
-
scard:
scard key 返回set的元素个数,如果set是空或者key不存在返回0
-
scard s2
3.集合命令
-
sinter:
sinter key1 key2...keyN 返回所有给定key的交集
-
sinter s1 s2
-
sinterstore:
sinterstore dstkey key1...keyN 同sinter,但是会同时将交集存到dstkey下
-
sinterstore s3 s1 s2
-
sunion(求两个集合的并集,类似sinter)
-
sunionstore(求两个集合的并集,并存储在第三个集合,类似sinterstore)
-
sdiff(求两个集合的差集,类似sinter)
-
sdiffstore(求两个集合的并集,并存储在第三个集合,类似sinterstore)