Redis指令详解-set相关指令

目录

目标

SADD

SMOVE

SPOP

SREM

SCARD key

SISMEMBER

SMEMBERS key

SRANDMEMBER

SSCAN

SDIFF

SDIFFSTORE

SINTER

SINTERSTORE

SUNION

SUNIONSTORE


目标

列举redis中与set相关的指令,包括作用、使用时需要注意的地方等。对于某些基本用不到的指令仅一带而过。

SADD

    SADD key member [member ...]
    O(N) N:参数member数量,一个参数元素,则O(1)
    将members添加到key对应的set,若member已存在则忽略,如果key不存在则新建set并添加members。
    返回实际添加的元素个数,不包括已存在的。若key对应val不是set,则返回error

SMOVE

    SMOVE source destination member
    O(1)
    原子操作,将一个元素从source移动到dest,元素仅存在于source或dest。如果source不存在或无该元素,则不执行任何操作并返回0,如果dest应存在元素,则仅从source删除元素。
    成功移动则返回1,source不存在或不包含元素则返回0

SPOP

    SPOP key [count]
    O(N) 无参数count则O(1),否则N=count
    删除并返回count数量的随机元素
    若count大于set元素数量,则针对set所有元素进行操作
    随机元素,不保证均匀分布

SREM

    SREM key member [member ...]
    O(N) N:参数中元素数量
    从set中删除元素,若元素不存在则忽略。
    返回实际删除的元素数量,若key不存在则返回0,若key对应val不是set则error

SCARD key

    O(1)
    返回set中元素数量,若key不存在则返回0

SISMEMBER

    SISMEMBER key member
    O(1)
    判断参数member是否已经在set中
    元素已存在返回1,key不存在或元素不存在则返回0

SMEMBERS key

    数组形式返回set中所有元素
    O(N)

SRANDMEMBER

    SRANDMEMBER key [count]
    O(N) 无参数count则O(1),否则N=count
    仅返回随机数量的元素,不删除
    返回
        无count时随机返回一个元素,count>0随机返回count数量的不相同的元素,count<1随机返回count数量的可能相同的元素
        无count且key不存在,返回null
        有count且key不存在,返回empty数组
    返回结果不是均衡分布的
        选择元素的类似方式
从hash表中选出一个not empty的bucket,检查其中元素数量并返回一个元素

SSCAN

SDIFF

    SDIFF key [key ...]
    O(N) N:参数keys对应set中的元素数量之和
    所有set的差集,key不存在视为empty set

SDIFFSTORE

    SDIFFSTORE destination key [key ...]
    将keys的差集存储到dest,若dest应存在则覆盖
    返回差集元素个数

SINTER

    SINTER key [key ...]
    O(N*M) N:最小set的元素数量,M:key数量
    返回所有keys对应set的交集,只要有一个set是empty则直接返回empty数组

SINTERSTORE

    SINTERSTORE destination key [key ...]
    将sets交集存储到dest,若dest已存在则覆盖
    返回交集中元素数量

SUNION

    SUNION key [key ...]
    O(N) N:keys对应set的元素数量之和
    返回并集

SUNIONSTORE

    SUNIONSTORE destination key [key ...]
    将并集存储到dest
    返回并集元素数量

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值