码迷,mamicode.com
首页 > 其他好文 > 详细

使用 redis ( set集合类型操作)

时间:2016-04-28 23:49:48      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

set 集合类型

    释义:
    
        redis 的 set 是 string 类型的无序集合

        set 元素最大可以包含(2的32次方-1)个元素

        关于 set 集合类型除了基本的添加删除操作 其他有用的操作还包含集合的

        并集(union),交集(intersection),差集(difference).

        通过这些操作实现SNS中的 好友推荐功能

    注意:

        每个集合中的各个元素不能重复

    应用场合:

        QQ好友的推荐

    set 类型操作:

        sadd key member

            添加一个 string 元素到 key 对应的 set 集合中 成功返回 1 如果元素在集合中 返回0  若 key 对应的 set 集合不存在 返回错误

        srem key member[member]

            从 key 对应的 set 中移除给定的元素 成功返回 1

        smove p1 p2 member

            从 p1 对应 set 中移除 member 并添加到 p2 对应 set 中

        scard key

            返回 set 中元素的个数

        sismember key member

            判断 member 是否在 set 中

        sinter key1 key2... keyN    

            返回所有给定 key 的交集

        sunion key1 key2... keyN    

            返回所有给定 key 的并集

        sdiff key1 key2... keyN        

            返回所有给定 key 的差集( 只有 key1 的 没有 key2 的)

        smembers key    

            返回 key 对应 set 的所有元素 结果是无序的

    eg:

    laowen10 朋友圈                        laowen20 朋友圈
                        公共朋友
    laowen 11                            laowen21
    
    laowen 12             laowen01        laowen22
    
    laowen 13            laowen02        laowen23

    // 生成 laowen10 的朋友圈   的 set 集合

    sadd laowen10 laowen11    // OK 表示添加OK

    sadd laowen10 laowen12    // OK 表示添加OK
    
    sadd laowen10 laowen13    // OK 表示添加OK

    sadd laowen10 laowen01    // OK 表示添加OK

    sadd laowen10 laowen02    // OK 表示添加OK

    // 生成 laowen20 的朋友圈   的 set 集合

    sadd laowen20 laowen21    // OK 表示添加OK
    
    sadd laowen20 laowen22    // OK 表示添加OK
    
    sadd laowen20 laowen23    // OK 表示添加OK

    sadd laowen20 laowen01    // OK 表示添加OK

    sadd laowen20 laowen02    // OK 表示添加OK

    // 交集 获取到交集

    sinter laowen10 laowen20

        // 返回交集结果

        // 1) "laowen01"

        // 2) "laowen02"

    // 并集 获取到并集

    sunion laowen10 laowen20

        // 返回并集结果

        // 1) "laowen11"
        
        // 2) "laowen12"
        
        // 3) "laowen13"
        
        // 4) "laowen21"
        
        // 5) "laowen22"
        
        // 6) "laowen23"
        
        // 7) "laowen01"

        // 8) "laowen02"

    // 差集 获取到差集

    sdiff laowen10 laowen20

        // laowen10 与 laowen20 比较 返回只属于 laowen10 的集合

        // 1) "laowen11"
        
        // 2) "laowen12"
        
        // 3) "laowen13"

    sdiff laowen20 laowen10

        // laowen20 与 laowen10 比较 返回只属于 laowen20 的集合

        // 1) "laowen21"
        
        // 2) "laowen22"
        
        // 3) "laowen23"

    // 获取给定元素的集合

    smembers laowen10

        // 获取到 laowen10 的 set 集合

        // 1) "laowen11"
        
        // 2) "laowen12"
        
        // 3) "laowen13"
        
        // 4) "laowen01"
        
        // 5) "laowen02"

    // 判断是否存在在对应的集合中

    sismember laowen10 laowen11

        // (integer) 1  // 说明 laowen11 在 laowen10 的 set 集合中
    
    sismember laowen10 laowen21

        // (integer) 0  // 说明 laowen21 不在 laowen10 的 set 集合中
    
    // 获取到 key 对应的 set 集合中的元素的个数

    scard laowen10

        // (integer) 5  // 说明 有5个元素

    // 移动元素

    smove laowen10 laowen20 laowen11

        // (integer) 1  // 将 laowen10 集合里面的元素 laowen11 移动到 laowen20 集合下

    // 删除元素

    srem laowen20 laowen11

        // (integer) 1  // 将 laowen20 集合里面的元素 laowen11 删除

使用 redis ( set集合类型操作)

标签:

原文地址:http://www.cnblogs.com/laowenBlog/p/5444684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!