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里面的元素

原文地址:https://www.cnblogs.com/zerotomax/p/7496093.html