redis sets類型及操作

來源:互聯網
上載者:User

標籤:blog   io   ar   sp   log   on   c   ad   r   

sets類型及操作
set是集合,它是string類型的無序集合。通過hash table實現,添加、刪除、尋找的複雜度都是0(1)。對集合我們可以實現取交際、差集並集。通過這些操作我們可以實現SNS中的好友推薦和blog的tag(標籤)功能

    sadd
    向集合中添加元素,成功返回1,失敗返回0,重複值添加為失敗
    例如:
    sadd myset1 hello

    smembers
    查看集合中的元素
    例如:
    smembers myset1

    scard
    查看集合中的元素個數
    例如:
    scard myset1

    sismember
    測試元素在不在集合中,存在返回1,不存在返回0
    例如:
    sismember myset1 two  

    srem
    刪除集合中的元素,成功返回1,失敗返回0
    例如:
    srem myset1 hello

    spop
    隨機從集合中彈出一個元素,並刪除,返回彈出元素的值
    例如:
    spop myset1

    sdiff
    返回第一個集合在第二個集合中的差集部分
    例如:
    myset1 中有 three two
    myset2 中有 two one
    sdiff myset1 myset2  //不會返回 three one 只會返回 three

    sdiffstore
    返回第一個集合在第二個集合中的差集部分,並將結果儲存到另一個集合中
    例如:
    sdiffstore myset4 myset2 myset3  //把myset2在myset3中的差集儲存在myset4中

    sinter
    返回所有集合的交集
    例如:
    sinter myset1 myset2

    sinterstore
    返回所有集合的交集,並儲存,用法同sdiffstore

    sunion
    返回所有集合的並集
    例如:
    sunion myset1 myset2

    sunionstore
    返回所有集合的並集,並儲存,用法同sdiffstore

    smove
    把第一個集合中的指定元素,移動到第二個集合
    例如:
    smove myset2 myset1 three

    srandmember
    隨機返回集合中的一個元素,不刪除元素

sorted sets
是對set的一個升級版本,它在set的基礎上增加了一個順序屬性,這個屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。

    zadd
    向集合中添加元素,member,score用於排序,如果該元素存在,則更新其順序
    例如:
    zadd myzset1 1 one

    zrange
    查看zset集合中的元素
    例如:
    zrange myzset1 0 -1 withscores    //withscores 輸出順序號,不是必須

    zrem
    刪除值為指定的元素
    例如:
    zrem myset1 two

    zincrby
    向集合中添加元素,如果元素已經存在,則該元素的score增加increment的值,否則向該集合中添加該元素,其score的值為increment
    例如:
    zincrby myzset1 2 four

    zrank
    返回集合中元素的排名,按score從小到大的順序,即下標,和數組一樣從0開始
    例如:
    zrank myzset1 four

    zrevrank
    和zrank一樣,不同是從大到小排序

    zrevrange
    返回集合中的結果,降序排序
    例如:
    zrevrange myzset1 0 -1 withscores

    zrangebyscore
    返回指定返回的元素
    例如
    zrangebyscore myzset1 2 3 withscores
    
    zcount
    返回集合中score在給定區間的元素的數量
    例如:
    zcount myzset1 2 4

    zremrangebyrank
    刪除集合中指定索引範圍內的元素
    例如:
    zremrangebyrank myzset1 1 3

    zremrangebyscore
    刪除集合中指定score範圍內的元素
    例如:
    zremrangebyscore myzset1 1 2
   

redis sets類型及操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.