zoukankan      html  css  js  c++  java
  • 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里面的元素

  • 相关阅读:
    Linus Torvalds: 成功的项目源于99%的汗水与1%的创新
    web.py入门
    Python web框架有哪些
    python and 和 or
    python 安装ssh和Scrapy
    github使用
    github的.md格式文件
    python list comprehension twos for loop 嵌套for循环
    python 中函数参数传递形式
    python MySQLdb安装和使用
  • 原文地址:https://www.cnblogs.com/zerotomax/p/7496093.html
Copyright © 2011-2022 走看看