发布时间:2024-03-08 11:01
在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。
和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完全相同的。换句话说,如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计算操作,如unions、intersections和differences。由于这些操作均在服务端完成,因此效率极高,而且也节省了大量的网络IO开销。
sadd key values[value1、value2…]:向set中添加数据,如果该key的值已有则不会重复添加
srem key members[member1、member2…]:删除set中指定的成员
1.5.2.2 获得集合中的元素
smembers key:获取set中所有的成员
sismember key member:判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)
1.5.2.3 集合的差集运算 A-B
sdiff key1 key2…:返回key1与key2中相差的成员,而且与key的顺序有关。即返回差集。
(属于A并且不属于B的元素构成的集合)
1.5.2.4 集合的交集运算 A ∩ B
sinter key1 key2 key3…:返回交集。
(属于A且属于B的元素构成的集合)
1.5.2.5 集合的并集运算 A ∪ B
sunion key1 key2 key3…:返回并集。