set类型
可理解为一种特殊的列表,集合中不能出现重复的值。即使为某集合添加重复元素,该集合也只会保存一个。常与随机事件搭配使用。
SADD
SADD key member [member …]
添加一个或多个指定的member元素到集合的 key中。
指定的一个或者多个元素member 如果已经在集合key中存在则忽略。
如果集合key 不存在,则新建集合key,并添加member元素到集合key中。
如果key 的类型不是集合则返回错误。
返回值:返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素。
集合是无序的,与加入顺序无关。
SMEMBERS
SMEMBERS key
返回key集合所有的元素。
该命令的作用与使用一个参数的SINTER 命令作用相同。
虽看上去每次的输出顺序都相同,但集合就是无序存放的。
SISMEMBER
SISMEMBER key member
返回成员 member 是否是存储的集合 key的成员。
返回值:
- 如果member元素是集合key的成员,则返回1
- 如果member元素不是key的成员,或者集合key不存在,则返回0
SCARD
SCARD key
返回集合存储的key的基数 (集合元素的数量)。
返回值:集合的基数(元素的数量),如果key不存在,则返回 0。
SRANDMEMBER
SRANDMEMBER key [count]
仅提供key参数,那么随机返回key集合中的一个元素。
- 若count是整数且小于元素的个数,返回含有 count 个不同的元素的数组。
- 若count是个整数且大于集合中元素的个数时,仅返回整个集合的所有元素。
- 若count是负数,则会返回一个包含count的绝对值的个数元素的数组。
- 若count的绝对值大于元素的个数,则返回的结果集里会出现一个元素出现多次的情况。
返回值:
- 不使用count 参数的情况下该命令返回随机的元素,如果key不存在则返回nil。
- 使用count参数,则返回一个随机的元素数组,如果key不存在则返回一个空的数组。
SREM
SREM key member [member …]
在key集合中移除指定的元素。可同时移除多个。
如果指定的元素不是key集合中的元素则忽略。
如果key的类型不是一个集合,则返回错误。
返回值:从集合中移除元素的个数,不包括不存在的成员。
如果key集合不存在,则被视为一个空的集合,该命令返回0。
SPOP
SPOP key [count]
从存储在key的集合中移除并返回一个或多个随机元素。
此操作与SRANDMEMBER类似,从一个集合中返回一个或多个随机元素,但SRANDMEMBER不删除元素。
返回值:被删除的元素,或者当key不存在时返回nil。
SMOVE
SMOVE source destination member
将member从source集合移动到destination集合中。
如果source 集合不存在或者不包含指定的元素,该smove命令不执行任何操作并且返回0。否则对象将会从source集合中移除,并添加到destination集合中去。
如果destination集合已经存在该元素,则smove命令仅将该元素充source集合中移除。
返回值:
- 如果该元素成功移除,返回1
- 如果该元素不是 source集合成员,无任何操作,则返回0。
- 如果source 和destination不是集合类型,则返回错误。
若destination集合不存在,则创建destination集合,再将元素添加。source集合必须存在。
SDIFF
SDIFF key [key …]
返回一个集合与给定集合的差集的元素。
不存在的key认为是空集。
找class1有的,而class2没有的。
找class2有的,而class1没有的。
【注意:在使用时,注意以哪个集合作为参照】
SINTER
SINTER key [key …]
返回指定所有的集合的成员的交集。(一个集合为空,结果一直为空)
如果key不存在,则被认为是一个空的集合。
class3不存在
SUNION
SUNION key [key …]
返回给定的多个集合的并集中的所有成员。
返回给定的多个集合的并集中的所有成员。
重复元素值显示一次
(无序)集合的使用场景
- 共同关注
- 个人关注
- 好友推荐