Redis学习-set数据结构
set 是无序集合,最大可以包含(2 的 32 次方-1)个元素。set 的是通过 hash table 实现的, 所以添加,删除,查找的复杂度都是 O(1)
sadd key member 添加一个 string 元素到 key 对应 set 集合中,成功返回 1,如果元素以及 在集合中则返回 0,key 对应的 set 不存在则返回错误
继续添加,返回0表示添加失败,说明set集合,不允许添加重复元素
smembers smembers smembers key 返回 key 对应 set 的所有元素,结果是无序的
sinter key1 key2 …… keyN 返回所有给定 key 的交集
sinterstore dstkey key1 ....... keyN 返回所有给定 key 的交集,并保存交集存到 dstkey 下
sunion key1 key2 ...... keyN 返回所有给定 key 的并集
sunionstore dstkey key1 ...... keyN 返回所有给定 key 的并集,并保存并集到 dstkey 下
sdiff key1 key2 ...... keyN 返回所有给定 key 的差集
sdiffstore sdiffstore sdiffstore dstkey key1 ...... keyN 返回所有给定 key 的差集,并保存差集到 dstkey 下
smove srckey dstkey member 从 srckey对应 set 中移除 member并添加到 dstkey 对应 set 中, 整个操作是原子的
scard key 返回 set 的元素个数,如果 set 是空或者 key 不存在返回 0
sismember key member 判断 member 是否在 set 中,存在返回 1,0 表示不存在或者 key 不 存在
srem key member 从 key 对应 set 中移除指定元素
spop key 删除并返回 key 对应 set 中随机的一个元素
srandmember key 同 spop,随机取 set 中的一个元素,但是不删除元素