[redis資料結構] 之 zset(有序集合)

來源:互聯網
上載者:User

標籤:redis 資料類型 zset

    上一篇講述了無序set集合的使用命令,本文將講述zset(有序集合)的使用命令以及執行個體。zset的一個元素由權重和值構成,權重表示的是位置,也就是有序的來由。

    1、如果添加一個有序集合元素

文法:zadd [zset集合] [權重(數實值型別)] [元素值]# 預設是權重由小到大排列

 範例:

  650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/48/DE/wKioL1QL1QPy3yVZAAGXIfsMlwc523.jpg" title="zadd樣本" alt="wKioL1QL1QPy3yVZAAGXIfsMlwc523.jpg" />

  闡述:在無序集合中,sadd一個已經存在的元素,是不存添加成功的;雖然在zset中添加一個已經存在的元素也無法添加,但是會可以修改其新設定的元素權重。

  例如:

  650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/DD/wKiom1QL127haxyXAAD3c_MzIXk277.jpg" title="zadd-01.png" alt="wKiom1QL127haxyXAAD3c_MzIXk277.jpg" />

  2、如果刪除一個元素

 文法:zrem [zset集合]

  範例:

      650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/48/DD/wKiom1QL1q2goWWeAAAwEFt25cY401.jpg" title="zrem樣本" alt="wKiom1QL1q2goWWeAAAwEFt25cY401.jpg" />

  3、遍曆有序集合

# 權重從小到大排列遍曆文法1:zrange [zset集合] [開始索引] [結束索引] <withscores># 權重從大到小排列遍曆文法2:zrevrange [zset集合] [開始索引] [結束索引] <withscores>

 範例:

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/48/DF/wKioL1QL2IPgjiWYAAD_gDcrVyA783.jpg" title="zrange.png" alt="wKioL1QL2IPgjiWYAAD_gDcrVyA783.jpg" />

 闡述:文法包含withscores是表示顯示權重。

  4、自增/自減元素權重

文法:zincrby [zset集合] [步長] [元素] # 返回元素的權重描述:如果元素不存在,那麼添加元素,並設定權重為指定步長,否則修改元素的權重為自增或自減的結果。

 範例:修改51cto2元素的權重為7

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/48/DF/wKioL1QL2d6z4bxNAADLpSUFrLI503.jpg" title="zincrby.png" alt="wKioL1QL2d6z4bxNAADLpSUFrLI503.jpg" />

 

  5、擷取元素的索引位置

# 按照權重升序取索引(從小到大)文法1:zrank [zset集合] [元素] # 擷取指定元素的索引位置# 按照權重降序取索引(從大到小)文法2:zrevrank [zset集合] [元素]

 範例:分別按照降序和升序去出51cto2元素的索引值(索引是從0開始的)

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/48/DD/wKiom1QL2vPSEUTgAAE3yXYpo9A483.jpg" title="zrank.png" alt="wKiom1QL2vPSEUTgAAE3yXYpo9A483.jpg" />

  6、擷取某個權重區間的元素列表

文法:zrangebyscore [zset集合] [起始權重] [結束權重] <withscores>描述:擷取某個權重區間的元素,withscores選項與zrange一致

 範例:擷取權重3,4之間的元素

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/DD/wKiom1QL3DGSrJhYAAFbkWNIe1o790.jpg" title="zrangebyscore.png" alt="wKiom1QL3DGSrJhYAAFbkWNIe1o790.jpg" />

  7、擷取某個權重區間的元素個數

文法:zcount [zset集合] [起始權重] [結束權重] # 返回元素個數

 範例:擷取權重3到4之間的元素個數

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/48/DD/wKiom1QL3TWAv8ZQAADiKltuSaA038.jpg" title="zcount.png" alt="wKiom1QL3TWAv8ZQAADiKltuSaA038.jpg" />

  8、擷取指定元素的權重

文法:zscore [zset集合] [元素] # 返回元素的權重數值

 範例:擷取51cto2的權重

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/E1/wKioL1QL7Y2xbyfLAAAwf50SdQ8462.jpg" title="zscore.png" alt="wKioL1QL7Y2xbyfLAAAwf50SdQ8462.jpg" />

  9、擷取集合大小

文法:zcard [zset集合] # 返回集合元素大小

 範例:擷取set1集合的元素個數

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/DF/wKiom1QL7ZPgJtNFAABENov7rmg105.jpg" title="zcardpng.png" alt="wKiom1QL7ZPgJtNFAABENov7rmg105.jpg" />

  10、大量刪除

# 按照索引位置大量刪除文法1:zremrangebyrank [zset集合] [開始索引] [結束索引] # 按照權重區間大量刪除文法2: zremrangebyscore [zset集合] [開始索引] [結束索引]

 範例:

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/48/E2/wKioL1QL8FCA3gU_AAJBi1gc5mk246.jpg" title="zremrange.png" alt="wKioL1QL8FCA3gU_AAJBi1gc5mk246.jpg" />

                            

本文出自 “java程式冥” 部落格,請務必保留此出處http://793404905.blog.51cto.com/6179428/1549770

[redis資料結構] 之 zset(有序集合)

聯繫我們

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