本文介绍Redis中与集合相关的命令,内容主要来源于Redis的官方网站,如有需要请参看:http://redis.io/commands#set。
1.SADD
语法:SADD key
member
说明:该操作的时间复杂度为O(1)。向存储在key上的集合中添加元素。如果该元素已经存在,那么将不会执行任何操作。如果指定的key不存在,那么将会创建一个新的集合,并且该集合中包含新添加的唯一一个元素。如果key对应的值不是set类型,那么将会发生错误。
返回值:如果向集合中添加了元素,那么返回值为1;如果member已经是该集合中的元素,那么返回值为0。
该命令自0.07版本后可用。
2.SCARD
语法:SCARD
key
说明:该操作的时间复杂度为O(1)。返回key对应的集合中所存储的元素个数。
返回值:返回集合中的元素个数,如果key不存在,那么返回值为0。
该命令自0.07版本后可用。
3.SDIFF
语法:SDIFF
key [key
...]
说明:该操作的时间复杂度为O(N),此处N为包含在所有指定集合中元素个数。返回第一个集合与后续所有集合中的元素的差集。
返回值:结果集合的元素列表。
该命令自0.100版本后可用。
4.SDIFFSTORE
语法:SDIFFSTORE
destination key [key
...]
说明:该操作的时间复杂度为O(N),此处N为包含在所有指定集合中元素个数。该命令等同于SDIFF,但是该命令会将结果存储在destination中。如果目标已经存在,它将会被重写。
返回值:结果集合中的元素个数。
该命令自0.100版本后可用。
5.SINTER
语法:SINTER
key [key
...]
说明:在最坏的情况下,该操作的时间复杂度为O(N*M),此处N为最小的集合的元素个数,而M为所给集合的个数。返回所有指定集合的交集。如果keys不存在,那么它将被认为是空集合。如果指定的keys中有一个是空集合,那么结果集合也将为空集合。
返回值:结果集合中的元素列表。
该命令自0.07版本后可用。
6.SINTERSTORE
语法:SINTERSTORE
destination key [key
...]
说明:该操作的时间复杂度为O(N*M),此处N为最小的集合的元素个数,而M为所给集合的个数。该命令等同于SINTER,但是该命令并不直接返回结果集合,而是将其存储在destination中。
如果目标集合已经存在,那么它将被重写。
返回值:结果集合中的元素个数。
该命令自0.07版本后可用。
7.SISMEMBER
语法:SISMEMBER
key
memeber
说明:该操作的时间复杂度为O(1)。查看指定的member是否是key对应的集合中的元素。
返回值:如果指定的member是集合中的元素,那么返回值为1;如果指定的元素不是集合中的元素,或者key不存在,那么返回值为0。
该命令自0.07版本后可用。
8.SMEMBERS
语法:SMEMBERS
key
说明:该操作的时间复杂度为O(N),此处N为集合的元素个数。返回存储在key上的集合中所有元素的个数。该命令与具有一个参数的SINTER命令效果相同。
返回值:返回集合中的所有元素。
该命令自0.07版本后可用。
9.SMOVE
语法:SMOVE
source destination
member
说明:该操作的时间复杂度为O(1)。将元素member从集合source中移至destination中。该操作是原子性的。对别的客户端而言,在每一个给定的时刻,元素会使source或者destination中的一员。如果source集合不存在或者没有包含指定的元素,将不会执行任何操作,并且返回值为0。不然的话,元素将会从source中移除,并且添加到destination中。当指定的元素已经在destination集合中存在时,该元素仅仅会从source集合中移除。如果source或者destination对应的值不是集合类型,那么将会发生错误。
返回值:如果元素被移除,那么将会返回1;如果指定的元素不是source中的一员并且没有执行任何操作,那么返回值为0。
该命令自0.091版本后可用。
10.SPOP
语法:SPOP
key
说明:该操作的时间复杂度为O(1)。从key对应的集合中移除并返回一个随机的元素。该操作与SRANDMEMBER类似,但是SRANDMEMBER会从集合中返回一个随机元素但是并不移除它。
返回值:返回被移除的元素,如果key不存在,那么返回值为nil。
该命令自0.101版本后可用。
11.SRANDMEMBER
语法:SRANDMEMBER
key
说明:该操作的时间复杂度为O(1)。返回key对应的集合中的一个随机元素。该操作与SPOP类似,但是SPOP命令会移除随机选择的元素,SRANDMEMBER仅仅是在不改变原有集合的基础上返回该随机元素。
返回值:返回随机选取的元素,如果指定的key不存在,那么返回值为nil。
该命令自1.001版本后可用。
12.SREM
语法:SREM
key
member
说明:从key对应的集合中移除指定的元素member。如果member不是集合中的一个元素,那么将不执行任何操作。
如果key对应的值并不是集合类型,那么将会发生错误。
返回值:如果元素被移除,那么返回值为1;如果member不是集合中的元素,那么返回值为0。
该命令自0.07版本后可用。
13.SUNION
语法:SUNION
key [key
...]
说明:该操作的时间复杂度为O(N),此处N为所有给定的集合中元素的总数。返回所有给定集合元素的合集。如果指定的key不存在,那么将会被看作空集对待。
返回值:结果集合中的元素列表。
该命令自0.091版本后可用。
14.SUNINOSTORE
语法:SUNINOSTORE
destination key [key
...]
说明:该操作的时间复杂度为O(N),此处N为给定集合中所有元素的总数。该命令等同于SUNION,但是该操作并不返回结果集合,而是将结果存储在destination中。如果destination已经存在,那么它将会被重写。
返回值:返回结果集合中元素的个数。