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

來源:互聯網
上載者:User

標籤:

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集合類型操作)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.