redis命令之-set集合

本文详细介绍Redis中Set集合的各种操作命令,包括添加元素(sadd)、获取所有元素(smembers)、计算集合数量(scard)等,并提供了示例说明如何进行集合间的差集(sdif)、交集(sinter)、并集(sunion)运算。
个人笔记:勿详看(详细在线文档http://redisdoc.com/list/index.html)


  1.    set集合命令
  2. sadd

    SADD key member [member ...]

    将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

    假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

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


    sadd key values
    SADD bbs "tianya.cn" "groups.google.com
    smembers 查看集合的所有元素 smembers key
    scard 查看集合元素个数 scard key
    sdiff

    SDIFF key [key ...]

    返回一个集合的全部成员,该集合是所有给定集合之间的差集。

    不存在的 key 被视为空集。


    127.0.0.1:6379> smembers bbs
    1) "groups.google.com"
    2) "tianya.cn"
    3) "discuz.net"
    127.0.0.1:6379> smembers bbs2
    1) "google.com"
    2) "baidu.com"
    127.0.0.1:6379> sdiff bbs bbs2
    1) "tianya.cn"
    2) "groups.google.com"
    3) "discuz.net"

    sdiffstore 与sdiff相比多了个将差异数据插入新的集合的步骤,

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

    destination 可以是 key 本身。

    127.0.0.1:6379> sdiffstore des_key bbs bbs2
    (integer) 3
    127.0.0.1:6379> smembers des_key
    1) "tianya.cn"
    2) "groups.google.com"
    3) "discuz.net"

    sinter 交集 127.0.0.1:6379> sinter bbs bbs2
    (empty list or set)

    sinterstore 交集插入一个新的set,如果是存在的,将其覆盖 127.0.0.1:6379> smembers bbs
    1) "google.com"
    2) "groups.google.com"
    3) "tianya.cn"
    4) "discuz.net"
    127.0.0.1:6379> smembers bbs2
    1) "google.com"
    2) "baidu.com"
    127.0.0.1:6379> sinterstore des_key bbs bbs2
    (integer) 1
    127.0.0.1:6379>  smembers des_key
    1) "google.com"

    sismember 判断是否是集合的成员 127.0.0.1:6379> sismember bbs google.com
    (integer) 1

    smove 将集合元素移动到别的集合 127.0.0.1:6379> smove bbs bbs3 google.com
    (integer) 1
    127.0.0.1:6379>  smembers bbs3
    1) "google.com"

    spop

    SPOP key

    移除并返回集合中的一个随机元素。

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


    127.0.0.1:6379>  smembers bbs
    1) "groups.google.com"
    2) "tianya.cn"
    3) "discuz.net"
    127.0.0.1:6379> spop bbs
    "groups.google.com"
    127.0.0.1:6379>  smembers bbs
    1) "tianya.cn"
    2) "discuz.net"
    127.0.0.1:6379> spop bbs
    "tianya.cn"
    127.0.0.1:6379>  smembers bbs
    1) "discuz.net"

    srandmember 从集合返回一个随机元素,也可以指定个数,,srandmember key n,同一个元素可能出现多次 127.0.0.1:6379> srandmember bbs2
    "google.com"
    127.0.0.1:6379>srandmember bbs2 2
    1) "google.com"
    2) "baidu.com"

    srem

    SREM key member [member ...]

    移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

    当 key 不是集合类型,返回一个错误。


    127.0.0.1:6379>  smembers bbs2
    1) "google.com"
    2) "baidu.com"
    3) "sina.com"
    127.0.0.1:6379> srem bbs2 baidu.com
    (integer) 1
    127.0.0.1:6379>  smembers bbs2
    1) "google.com"
    2) "sina.com"

    sunion 集合的并集 127.0.0.1:6379>  smembers bbs2
    1) "google.com"
    2) "sina.com"
    127.0.0.1:6379>  smembers bbs
    1) "discuz.net"
    127.0.0.1:6379> sunion bbs bbs2
    1) "google.com"
    2) "sina.com"
    3) "discuz.net"

    sunionstore

    SUNIONSTORE destination key [key ...]

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

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

    destination 可以是 key 本身。


    127.0.0.1:6379> sunionstore new_bbs bbs bbs2
    (integer) 3
    127.0.0.1:6379>  smembers new_bbs
    1) "google.com"
    2) "sina.com"
    3) "discuz.net"




















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-1793096/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-1793096/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值