Redis教程教程(五五)::Set数据类型数据类型
主要介绍了Redis教程(五):Set数据类型,本文讲解了Set数据类型概述、相关命令、命令使用示例、应用范围等
内容,需要的朋友可以参考下
一、概述:一、概述:
在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添
加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可
包含的最大元素数量是4294967295。
和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完全相同的。换句话说,如果
多次添加相同元素,Set中将仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即
在服务器端完成多个Sets之间的聚合计算操作,如unions、intersections和differences。由于这些操作均在服务端完成,因此
效率极高,而且也节省了大量的网络IO开销。
二、相关命令列表:二、相关命令列表:
命令原型命令原型
时间复时间复
杂度杂度
命令描述命令描述 返回值返回值
SADDkey member
[member ...]
O(N)
时间复杂度中的N表示操作的成员数量。如果在插入的过程用,参数中有的
成员在Set中已经存在,该成员将被忽略,而其它成员仍将会被正常插入。
如果执行该命令之前,该Key并不存在,该命令将会创建一个新的Set,此
后再将参数中的成员陆续插入。如果该Key的Value不是Set类型,该命令将
返回相关的错误信息。
本次操作
实际插入
的成员数
量。
SCARDkey O(1) 获取Set中成员的数量。
返回Set
中成员的
数量,如
果该Key
并不存
在,返回
0。
SISMEMBER key member O(1) 判断参数中指定成员是否已经存在于与Key相关联的Set集合中。
1表示已
经存
在,0表
示不存
在,或该
Key本身
并不存
在。
SMEMBERS key O(N)
时间复杂度中的N表示Set中已经存在的成员数量。获取与该Key关联的Set
中所有的成员。
返回Set
中所有的
成员。
SPOPkey O(1)
随机的移除并返回Set中的某一成员。 由于Set中元素的布局不受外部控
制,因此无法像List那样确定哪个元素位于Set的头部或者尾部。
返回移除
的成员,
如果该
Key并不
存在,则
返回nil。
SREMkey member
[member ...]
O(N)
时间复杂度中的N表示被删除的成员数量。从与Key关联的Set中删除参数中
指定的成员,不存在的参数成员将被忽略,如果该Key并不存在,将视为空
Set处理。
从Set中
实际移除
的成员数
量,如果
没有则返
回0。
SRANDMEMBER key O(1)
和SPOP一样,随机的返回Set中的一个成员,不同的是该命令并不会删除
返回的成员。
返回随机
位置的成
员,如果
Key不存
在则返回
nil。