redis的数据结构——存储set

在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我 们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要 说明的是,这些操作的时间是常量时间。Set可包含的最大元素数是4294967295。

和List类型不同的是,Set集合中不允许出现重复的元素。和List类型相比,Set类 型在功能上还存在着一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计 算操作,如unions、intersections和differences。由于这些操作均在服务端完成, 因此效率极高,而且也节省了大量的网络IO开销

1、添加删除元素

● sadd key values[value1 value2...]:向set中添加数据,如果key的值已有则不会重复添加

● srem key members[member1 member2...]:删除set中指定的成员

2、获取元素

● smembers key:获取set中所有元素

● sismember key member:判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)

redis的数据结构——存储set_第1张图片

3、集合的差集运算A-B

● sdiff key1 key2...:返回key1与key2中相差的成员,而且与key的顺序有关,几返回差值。

redis的数据结构——存储set_第2张图片

4、集合的交集运算A∩B

● sinter key1 key2 key3...:返回交集

redis的数据结构——存储set_第3张图片

5、集合的并集运算A∪B

● sunion key1 key2 key3...:返回并集

redis的数据结构——存储set_第4张图片

6、扩展命令

● scard key:获取set中成员数量

● srandmember key:随机返回set中的一个成员

redis的数据结构——存储set_第5张图片

● sdiffstore destination key1 key2...:将key1、key2相差的成员存储在destination上

● sinterstore destination key[key...]:将返回的交集存储在destination上

● sunioustore destination key[key...]:将返回的并集存储在destination上

redis的数据结构——存储set_第6张图片

你可能感兴趣的