Redis常用命令--Sets
Set是不重复且无序的字符串元素的集合。
还可以对set集取交集,并集,差等等。
在Redis中大概有15个操作Set的命令。
SADD key member [member ...]:添加一个或者多个元素到集合(set)里,复杂度O(N),N为要添加的元素个数。
SMEMBERS key:获取集合key里面的所有的成员。复杂度为O(N),N为集合的基数。
SCARD key:获取集合里面的元素数量,时间复杂度为O(1)。
SRANDMEMBER key [count]:从集合里面随机获取一个key,时间复杂度为O(1)。
SPOP key [count]:删除并获取一个集合里面的元素,时间复杂度为O(1)。
SREM key member [member ...]:从集合里删除一个或多个key,复杂度O(N),N为要删除的元素个数。
SISMEMBER key member:确定一个给定的值是一个集合的成员
27.0.0.1:6379> sadd ids id001 id002 (integer) 2 127.0.0.1:6379> smembers ids 1) "id002" 2) "id001" 127.0.0.1:6379> scard ids (integer) 2 127.0.0.1:6379> sadd ids id003 id004 (integer) 2 127.0.0.1:6379> srandmember ids 2 1) "id001" 2) "id002" 127.0.0.1:6379> srandmember ids 2 1) "id003" 2) "id001" 127.0.0.1:6379> spop ids 1 1) "id004" 127.0.0.1:6379> sismember ids id001 (integer) 1 127.0.0.1:6379> sismember ids id002 (integer) 1 127.0.0.1:6379> sismember ids id004 (integer) 0 127.0.0.1:6379> srem ids id001 id002 (integer) 2 127.0.0.1:6379> sismember ids id001 (integer) 0 127.0.0.1:6379> srem ids id001 id002 (integer) 0 127.0.0.1:6379>
SDIFF key [key ...]:获得与所给定集合的差集,时间复杂度为O(N),N为所给定集合的成员数量之和。
SINTER key [key ...]:获得两个集合的交集,时间复杂度O(N * M), N
为给定集合当中基数最小的集合, M
为给定集合的个数。
SUNION key [key ...]:获取所给定集合的并集,时间复杂度为O(N),N为所给定集合的成员数量之和。
SUNIONSTORE destination key [key ...]:合并set元素,并将结果存入新的set里面,时间复杂度为O(N),N为所给定集合的成员数量之和。
SINTERSTORE destination key [key ...]:获得两个集合的交集,并存入新的结果集,时间复杂度O(N * M), N
为给定集合当中基数最小的集合, M
为给定集合的个数。
SDIFFSTORE destination key [key ...]:获得队列不存在的元素,并存入新的结果集,时间复杂度O(N), N
是所有给定集合的成员数量之和。
SMOVE source destination member:移动集合里面的一个元素member,从集合source到另一个集合destination,时间复杂度O(1)。
127.0.0.1:6379> smembers set1 1) "set14" 2) "set13" 3) "set12" 4) "set11" 127.0.0.1:6379> smembers set2 1) "set14" 2) "set23" 3) "set12" 4) "set2" 127.0.0.1:6379> sdiff set1 set2 1) "set13" 2) "set11" 127.0.0.1:6379> sinter set1 set2 1) "set14" 2) "set12" 127.0.0.1:6379> sunion set1 set2 1) "set14" 2) "set23" 3) "set11" 4) "set13" 5) "set2" 6) "set12" 127.0.0.1:6379> sdiffstore set3 set1 set2 (integer) 2 127.0.0.1:6379> smembers set3 1) "set13" 2) "set11" 127.0.0.1:6379> sunionstore set4 set1 set2 (integer) 6 127.0.0.1:6379> smembers set4 1) "set14" 2) "set23" 3) "set11" 4) "set13" 5) "set2" 6) "set12" 127.0.0.1:6379> sinterstore set5 set1 set2 (integer) 2 127.0.0.1:6379> smembers set5 1) "set14" 2) "set12" 127.0.0.1:6379> smove set1 set2 set13 (integer) 1 127.0.0.1:6379> smembers set1 1) "set14" 2) "set12" 3) "set11" 127.0.0.1:6379> smembers set2 1) "set14" 2) "set23" 3) "set12" 4) "set2" 5) "set13" 127.0.0.1:6379>
SSCAN key cursor [MATCH pattern] [COUNT count]:迭代set里面的元素