Redis 数据库之集合(Set)

集合(set)

  • 在 Redis 中,我们可以将 Set 类型看作没有排序的字符集合,和 List 类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。这些操作的时间复杂度为 O(1),即常量时间内完成。Set 可包含的最大元素数量是 4294967295。
  • 和List集合不同的是,Set集合中不允许出现重复的元素。相比 List 类型,Set 类型在功能上海存在着一些非常重要的特性,即在服务端完成多个 Set 之间的聚合计算操作,如 unions、intersections、defferences。由于这些操作均在服务端完成,因此效率极高,而且也节省了大量的网络 IO 开销。

存储(sadd)

sadd key value value ...

  • 向 Set 中存储一个或多个值,如果要添加的值以及存在该 Set 中则不会重复添加。
    这里写图片描述

删除(srem)

srem key value value ...

  • 删除指定 key 中的一个或多个元素,如果值不存在不作任何操作。
    这里写图片描述

读取(smembers)

smembers key

  • 获取该 key 中的所有元素。
    Redis 数据库之集合(Set)_第1张图片

判断元素是否存在(sismember)

sismember key element

  • 判断 element 是否存在于 key 中,存在返回 1,不存在返回 0,或者 key 不存在也返回 0。
    Redis 数据库之集合(Set)_第2张图片

差集运算(sdiff)

sdiff key1 key2 key3 ...

  • 返回 key1 与后面的 key 的差集成员。
    Redis 数据库之集合(Set)_第3张图片

交集运算(sinter)

sinter key1 key2 key3 ...

  • 返回所有 key 中的交集成员。
    Redis 数据库之集合(Set)_第4张图片

并集运算(sunion)

kunion key1 key2 key3 ...

  • 获得所有 key 中的并集成员。
    Redis 数据库之集合(Set)_第5张图片

获取元素数量(scard)

scard key

Redis 数据库之集合(Set)_第6张图片


随机获得元素(srandmember)

sranmember key

Redis 数据库之集合(Set)_第7张图片


存储差集(sdiffstore)、交集(sinterstore)和并集(sunionstore)

sdiffstore destination key1 key2 ...
sinterstore destination key1 key2 ...
sunionstore destination key1 key2 ...

  • 将差集、交集和并集的运行结果存储到 destination 中。
    Redis 数据库之集合(Set)_第8张图片

你可能感兴趣的:(数据库)