美文网首页
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