• Redis教程11-集合(Set)常用命令使用参考2


    1.SINTERSTORE

    SINTERSTORE destination key [key ...]

    这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

    如果 destination 集合已经存在,则将其覆盖。

    destination 可以是 key 本身。

    可用版本:>= 1.0.0

    时间复杂度:O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。

    返回值:结果集中的成员数量。

    使用参考命令 SDIFFSTORE命令, 只不过一个差值一个交集, 使用方式是一样的

    2.SISMEMBER

    SISMEMBER key member

    判断 member 元素是否集合 key 的成员。

    可用版本:>= 1.0.0

    时间复杂度:O(1)

    返回值:

    如果 member 元素是集合的成员,返回 1 。
    如果 member 元素不是集合的成员,或 key 不存在,返回 0 。
    127.0.0.1:6379> smembers name1
    1) "jerry"
    2) "zhangsan"
    3) "tom"
    127.0.0.1:6379> sismember name1 tom
    (integer) 1
    127.0.0.1:6379> sismember name1 lisi
    (integer) 0
    127.0.0.1:6379> sismember name111 lisi    // key不存在
    (integer) 0

    3.SMEMBERS

    SMEMBERS key

    返回集合 key 中的所有成员。

    不存在的 key 被视为空集合。

    可用版本:>= 1.0.0

    时间复杂度:O(N), N 为集合的基数。

    返回值:集合中的所有成员。

    127.0.0.1:6379> exists names
    (integer) 0
    127.0.0.1:6379> smembers names    // 不存在的key
    (empty list or set)
    127.0.0.1:6379> sadd names tom jerry zhangsan lisi
    (integer) 4
    127.0.0.1:6379> smembers names
    1) "lisi"
    2) "jerry"
    3) "zhangsan"
    4) "tom"

    4.SMOVE

    SMOVE source destination member

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

    SMOVE 是原子性操作。

    如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

    当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

    当 source 或 destination 不是集合类型时,返回一个错误。

    可用版本:>= 1.0.0

    时间复杂度:O(1)

    返回值:

    如果 member 元素被成功移除,返回 1 。
    如果 member 元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回 0 。
    redis> SMEMBERS songs
    1) "Billie Jean"
    2) "Believe Me"
    
    redis> SMEMBERS my_songs
    (empty list or set)
    
    redis> SMOVE songs my_songs "Believe Me"
    (integer) 1
    
    redis> SMEMBERS songs
    1) "Billie Jean"
    
    redis> SMEMBERS my_songs
    1) "Believe Me"

    5.SPOP

    SPOP key [count]

    移除并返回集合中的一个(或者count个)随机元素。

    如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令

    count > 集合剩余个数, 此时count=元素个数

    可用版本:>= 1.0.0

    时间复杂度:O(1)

    返回值:

    被移除的随机元素。
    当 key 不存在或 key 是空集时,返回 nil 。
    127.0.0.1:6379> smembers name1
    1) "zhangsan"
    2) "tom"
    3) "jack"
    4) "jerry"
    5) "lisi"
    127.0.0.1:6379> spop name1 2    // 随机返回并删除2个元素
    1) "tom"
    2) "zhangsan"
    127.0.0.1:6379> spop name1 2     // 随机返回并删除2个元素
    1) "lisi"
    2) "jerry"
    127.0.0.1:6379> smembers name1
    1) "jack"
    127.0.0.1:6379> spop name1 2 // 元素只剩1个, 不能随机删除2个, 删除剩余的所有元素
    1) "jack"
    127.0.0.1:6379> spop name1 2 // 没有元素, 无法随机删除
    (empty list or set
  • 相关阅读:
    Android应用开发学习笔记之事件处理
    [置顶] 炎炎夏日,给你一次极爽的开发体验!——统一开发环境功能升级优化,正式上线V2.0!
    POJ 3468 A Simple Problem with Integers (伸展树区间更新求和操作 , 模板)
    京东商城发现了一枚Bug
    iOS_40_核心动画
    SVN——库合并
    ORACLE 8i 遇到报错:ORA-01631: max # extents (505) reached in table
    HDU 5366:The mook jong 递推
    Linux平台下裸设备的绑定:
    CSP:使用CryptoAPI解码X509证书内容
  • 原文地址:https://www.cnblogs.com/no-celery/p/13711657.html
Copyright © 2020-2023  润新知