Redis set常用命令

た 入场券 2023-02-23 03:38 87阅读 0赞

redis set 和java的set集合功能差不多的

集合(Set) 的主要功能就是求并集、交集、差集。

  1. A = { 'a', 'b', 'c'}
  2. B = { 'a', 'e', 'i', 'o', 'u'}
  3. inter(x, y): 交集,在集合x和集合y中都存在的元素。
  4. inter(A, B) = { 'a'}
  5. union(x, y): 并集,在集合x中或集合y中的元素,如果一个元素在xy中都出现,那只记录一次即可。
  6. union(A,B) = { 'a', 'b', 'c', 'e', 'i', 'o', 'u'}
  7. diff(x, y): 差集,在集合x中而不在集合y中的元素。
  8. diff(A,B) = { 'b', 'c'}
  9. card(x): 基数,一个集合中元素的数量。
  10. card(A) = 3
  11. 空集: 基数为0的集合。

sadd(key, member)

向名称为key的set中添加元素member

smembers(key)

返回名称为key的set的所有元素

  1. 127.0.0.1:6379> sadd users u1
  2. (integer) 1
  3. 127.0.0.1:6379> sadd users u2
  4. (integer) 1
  5. 127.0.0.1:6379> sadd users u3 u4
  6. (integer) 2
  7. 127.0.0.1:6379> smembers users
  8. 1) "u2"
  9. 2) "u4"
  10. 3) "u1"
  11. 4) "u3"

srem(key, member) :

删除名称为key的set中的元素member

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 2) "u4"
  4. 3) "u1"
  5. 4) "u3"
  6. 127.0.0.1:6379> srem users u1
  7. (integer) 1
  8. 127.0.0.1:6379> srem users u3 u4
  9. (integer) 2
  10. 127.0.0.1:6379> smembers users
  11. 1) "u2"

sismember(key, member) :

member是否是名称为key的set的元素

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 127.0.0.1:6379> sismember users u2
  4. (integer) 1
  5. 127.0.0.1:6379> sismember users u1
  6. (integer) 0

scard(key) :

返回名称为key的set的基数,一个集合中元素的数量。

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 127.0.0.1:6379> scard users
  4. (integer) 1

smove(srckey, dstkey, member) :

将member元素从source集合移动到destination集合。

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 2) "u4"
  4. 3) "u1"
  5. 4) "u3"
  6. 127.0.0.1:6379> smembers blacklist
  7. (empty list or set)
  8. 127.0.0.1:6379> smove users blacklist u1
  9. (integer) 1
  10. 127.0.0.1:6379> smembers users
  11. 1) "u2"
  12. 2) "u4"
  13. 3) "u3"
  14. 127.0.0.1:6379> smembers blacklist
  15. 1) "u1"

srandmember(key) :

随机返回名称为key的set的一个元素

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 2) "u4"
  4. 3) "u3"
  5. 127.0.0.1:6379> srandmember users
  6. "u3"
  7. 127.0.0.1:6379> srandmember users 2
  8. 1) "u2"
  9. 2) "u3"

spop(key) :

随机返回并删除名称为key的set中一个元素

  1. 127.0.0.1:6379> smembers users
  2. 1) "u2"
  3. 2) "u4"
  4. 3) "u3"
  5. 127.0.0.1:6379> spop users
  6. "u3"
  7. 127.0.0.1:6379> smembers users
  8. 1) "u2"
  9. 2) "u4"

sinter(key1, key2,…key N) :

求交集。

  1. 127.0.0.1:6379> smembers group1
  2. 1) "3"
  3. 2) "2"
  4. 3) "4"
  5. 4) "1"
  6. 5) "a"
  7. 127.0.0.1:6379> smembers group2
  8. 1) "b"
  9. 2) "a"
  10. 3) "1"
  11. 4) "c"
  12. 127.0.0.1:6379> sinter group1 group2
  13. 1) "a"
  14. 2) "1"

sinterstore(dstkey, (key2,…key N)) :

求交集并将交集保存到dstkey的集合

  1. 127.0.0.1:6379> sinterstore group3 group1 group2
  2. (integer) 2
  3. 127.0.0.1:6379> smembers group1
  4. 1) "3"
  5. 2) "4"
  6. 3) "1"
  7. 4) "2"
  8. 5) "a"
  9. 127.0.0.1:6379> smembers group2
  10. 1) "b"
  11. 2) "a"
  12. 3) "1"
  13. 4) "c"
  14. 127.0.0.1:6379> smembers group3
  15. 1) "a"
  16. 2) "1"

sunion(key1, (keys)) :

求并集

  1. 127.0.0.1:6379> sunion group1 group2
  2. 1) "3"
  3. 2) "4"
  4. 3) "1"
  5. 4) "2"
  6. 5) "b"
  7. 6) "a"
  8. 7) "c"

sunionstore(dstkey, (keys)) :

求并集并将并集保存到dstkey的集合

  1. 127.0.0.1:6379> sunionstore group4 group1 group2
  2. (integer) 7
  3. 127.0.0.1:6379> smembers group4
  4. 1) "3"
  5. 2) "4"
  6. 3) "1"
  7. 4) "2"
  8. 5) "b"
  9. 6) "a"
  10. 7) "c"

sdiff(key1, (keys)) :

求差集

  1. 127.0.0.1:6379> smembers group1
  2. 1) "3"
  3. 2) "4"
  4. 3) "1"
  5. 4) "2"
  6. 5) "a"
  7. 127.0.0.1:6379> smembers group2
  8. 1) "b"
  9. 2) "a"
  10. 3) "1"
  11. 4) "c"
  12. 127.0.0.1:6379> sdiff group1 group2
  13. 1) "2"
  14. 2) "3"
  15. 3) "4"

sdiffstore(dstkey, (keys)) :

求差集并将差集保存到dstkey的集合

  1. 127.0.0.1:6379> sdiffstore group5 group1 group2
  2. (integer) 3
  3. 127.0.0.1:6379> smembers group5
  4. 1) "2"
  5. 2) "3"
  6. 3) "4"

发表评论

表情:
评论列表 (有 0 条评论,87人围观)

还没有评论,来说两句吧...

相关阅读