1.增长/删除元素redis
SADD key member [member] SREM key member [member]
SADD 命令用来向集合中增长一个或多个元素,若是键不存在则会自动建立。由于在一个集合中不能有相同的元素,因此若是要加入的元素已经存在于集合中就会忽略这个元素。本命令的返回值是成功加入的元素数量。code
redis> SADD letters a (integer) 1 redis> SADD letters a b c (integer) 2
第二条SADD命令的返回值为2是由于元素“a”已经存在,因此实际上只加入了两个元素。
SREM 命令用来从集合中删除一个或多个元素,并返回删除成功的个数。io
redis> SREM letters c d (integer) 1
因为元素“d”在集合中不存在,因此只删除了一个元素,返回值为 1。入门
2.得到集合中的全部元素ember
SMEMBERS key
SMEMBERS 命令会返回集合中的全部元素。集合
redis> SMEMBERS letters 1) "b" 2) "a"
3.判断元素是否在集合中di
SISMEMBER key member
当值存在时返回1,不存在时返回0。时间
redis> SISMEMBERS letters a (integer) 1 redis> SISMEMBERS letters d (integer) 0
4.集合间运算ant
SDIFF key [key ...] SINTER key [key ...] SUNION key [key ...]
SDIFF 命令用来对多个集合执行差集运算。co
redis> SADD setA 1 2 3 (integer) 3 redis> SADD setB 2 3 4 (integer) 3 redis> SDIFF setA setB 1) "1" redis> SDIFF setB setA 1) "4"
SDIFF 命令支持同时传入多个键
redis> SADD setC 2 3 (integer) 2 redis> SDIFF setA setB setC 1) "1" 计算顺序为:setA - setB 以后的结果 - setC
SINTER 命令用来对多个集合执行交集运算。
redis> SINTER setA setB 1) "2" 2) "3"
SINTER 命令一样支持同时传入多个键。
redis> SINTER setA setB setC 1) "2" 2) "3"
SUNION 命令用来对多个集合执行并集运算。
redis> SUNION setA setB 1) "1" 2) "2" 3) "3" 4) "4"
SUNION 命令一样支持多个键,这里就不赘述了。
5.得到集合中元素个数
SCARD key
例如:
redis> SMEMBERS letters 1) "b" 2) "a" redis> SCARD letters (integer) 2
6.进行集合运算并将结果存储
SDIFFSTORE destination key [key ...] SINTERSTORE destination key [key ...] SUNIONSTORE destination key [key ...]
SDIFFSTORE 命令与 SDIFF命令功能同样,惟一的区别就是前者不会直接返回运算结果,而是将结果存储在 destiantion 键中。
SDIFFSTORE 命令经常使用于须要进行多步集合运算的场景中,如须要先计算差集再将结果和其余键计算交集。
SINTERSTORE 和 SUNIONSTORE 命令与之相似,再也不赘述。
7.随机得到集合中的元素
SRANDMEMBER key [count]
SRANDMEMBER 命令用来随机从集合中获取一个元素。
redis> SRANDMEMBER letters "a" redis> SRANDMEMBER letters "b" redis> SRANDMEMBER letters "a"
还能够传递count参数来一次随机得到多个元素,根据count的正负不一样,具体表现也不一样。
(1)当count为正数时,SRANDMEMBER 会随机从集合里得到 count 个不重复的元素。若是 count 的值大于集合中的元素个数,则 SRANDMEMBER 会返回集合中的所有元素。
(2)当count为负数时,SRANDMEMBER 会随机从集合里得到|count|个的元素,这些元素都有可能相同。
redis> SADD letters c d (integer) 2 目前letters集合中有 “a”,“b”,“c”,“d”。 redis> SRANDMEMBER letters 2 1) "a" 2) "c" redis> SRANDMEMBER letters 2 1) "a" 2) "b" redis> SRANDMEMBER letters 100 1) "b" 2) "a" 3) "c" 4) "d" redis> SRANDMEMBER letters -2 1) "b" 2) "b" redis> SRANDMEMBER letters -10 1) "b" 2) "b" 3) "a" 4) "c" 5) "b" 6) "a" 7) "b" 8) "d" 9) "b" 10) "b"
8.从集合中弹出一个元素
SPOP key
由于集合是无序的,因此弹出元素也是随机的。
redis> SPOP letters "b" redis> SMEMBERS letters 1) "a" 2) "c" 3) "d"
整理自《Redis 入门指南第二版》。