Redis Set 命令
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)