美文网首页
Redis 集合(Set)

Redis 集合(Set)

作者: 爱折腾的傻小子 | 来源:发表于2020-09-29 16:07 被阅读0次
    Sadd 将一个或多个成员元素加入到集合中
    • 已经存在于集合的成员元素将被忽略
    • 假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合
    • 当集合 key 不是集合类型时,返回一个错误
    • sadd redis命令 SADD KEY_NAME VALUE1..VALUEN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sadd', [
        'myset', 's1', 's2', 's3'
    ]);  // 3
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sadd('myset', 's1', 's2', 's3');
    // 返回值 返回添加的数量
    
    Spop 移除并返回集合中的一个随机元素
    • spop redis命令 SPOP KEY
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('spop', [
        'myset'
    ]);  // 'Array'
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->spop('myset');
    // 返回值返回被随机删除的元素
    
    Srem 移除集合中的一个或多个成员元素
    • 不存在的成员元素会被忽略
    • srem redis命令 SREM KEY MEMBER1..MEMBERN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('srem', [
        'myset', 'h1'
    ]);  // 1
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sismember('srem', 'hh', 'h2');
    // 返回值返回被移除的数量
    
    Sunion 返回给定集合的并集
    • 不存在的集合 key 被视为空集
    • sunion redis命令 SUNION KEY KEY1..KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sunion', [
        'myset', 's11'
    ]);  // ['s1', 's2']
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sunion('myset', 's11');
    // 返回数组 失败返回false
    
    Sunionstore 将给定集合的并集存储在指定的集合 destination 中
    • sunionstore redis命令 SUNIONSTORE DESTINATION KEY KEY1..KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sunionstore', [
        's1', 'myset', 's11'
    ]);  // ['s1', 's2']
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sunionstore('s1', 'myset', 's11');
    
    Sinter 返回给定所有给定集合的交集
    • 不存在的集合 key 被视为空集
    • 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)
    • sinter redis命令 SINTER KEY KEY1..KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sinter', [
        'myset', 'xds'
    ]);  // []
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sinter('myset', 'xds');
    
    Sinterstore 将给定集合之间的交集存储在指定的集合中
    • 如果指定的集合已经存在,则将其覆盖
    • sinterstore redis命令 SINTERSTORE DESTINATION_KEY KEY KEY1..KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sinterstore', [
       's2',  'myset', 'xds'
    ]);  // []
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sinterstore('s2', 'myset', 'xds');
    
    Sdiff 返回给定集合之间的差集
    • sdiff redis命令 SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sdiff', [
        'myset', 'xds'
    ]);  // ['s1', 's2']
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sdiff('myset', 'xds');
    // 返回差集
    
    Sdiffstore 将给定集合之间的差集存储在指定的集合中
    • 如果指定的集合 key 已存在,则会被覆盖
    • sdiffstore redis命令 SDIFFSTORE DESTINATION_KEY KEY1..KEYN
    // 总是返回false
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sdiffstore', [
        'myset2', 'myset1', 'myset'
    ]);
    //
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->sDiffStore('destset', 'myset', 'myset1');
    
    Scard 返回集合中元素的数量
    • scard redis命令 SCARD KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('scard', [
        'myset'
    ]);  // 2
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sunion('scard', 's11');
    
    Smembers 返回集合中的所有的成员
    • 不存在的集合 key 被视为空集合
    • smembers redis命令 SMEMBERS KEY VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('smembers', [
        'myset'
    ]);  // ['h3', 'h2', 'h1']
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->smembers('myset');
    
    Srandmember 返回集合中的一个随机元素
    • 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同
    • 如果 count 大于等于集合基数,那么返回整个集合
    • 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值
    • srandmember redis命令 SRANDMEMBER KEY [count]
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('srandmember', [
        'myset', 2
    ]);  // ['h2', 'h1']
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->srandmember('myset', -2);
    
    Sismember 判断成员元素是否是集合的成员
    • 如果成员元素是集合的成员,返回 1 。 如果成员元素不是集合的成员,或 key 不存在,返回 0
    • sismember redis命令 SISMEMBER KEY VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sismember', [
        'myset', 'h1'
    ]);  // true
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->sismember('myset', 'hh');
    // 存在返回true  不存在返回false
    
    Smove 将指定成员 member 元素从 source 集合移动到 destination 集合
    • 如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0
    • 否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去
    • 当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除
    • smove redis命令 SMOVE SOURCE DESTINATION MEMBER
    // 将元素'h2'从集合'myset'移动到集合'myset1'
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('smove', [
        'myset', 'myset1', 'h2'
    ]);  // true
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->smove('myset', 'myset1', 'h2');
    // 返回值 成功返回true 失败返回false 
    
    Sscan 迭代集合键中的元素
    • sscan redis命令 SSCAN KEY [MATCH pattern] [COUNT count]
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('sscan', [
        'myset1', $iterator, 'h*', 0
    ]);  // $return = ['h2', 'h21ah']         $iterator = null
    

    相关文章

      网友评论

          本文标题:Redis 集合(Set)

          本文链接:https://www.haomeiwen.com/subject/sgshuktx.html