99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學院 頭像
蘋果6袋
6
麥子學院

Redis學習之有序集合類型的常用命令詳解

發(fā)布時間:2017-04-22 20:50  回復:0  查看:2075   最后回復:2017-04-22 20:50  
本文和大家分享的主要是redis 中有序集合類型的常用命令,一起來看看吧,希望對大家 學習redis有所幫助。
  一、有序集合類型
  有序集合類型,大家從名字上應該就可以知道,實際上就是在集合類型上加了個有序而已。Redis 中的有序集合類型,實際上是在集合類型上,為每個元素都關聯(lián)一個分數(shù),有序實際上說的是分數(shù)有序,我們根據分數(shù)的范圍獲取集合及其他操作。集合的元素依然是不能夠相同的,但是分數(shù)可以相同。
   下面列舉有序集合和類型和列表類型的相似處:
  兩者都是有序的(廢話!)
  兩者都可以獲得某一范圍的元素
   下面列舉區(qū)別:
  列表是鏈表實現(xiàn)的,靠近兩邊的數(shù)據讀取極快,而元素過多后獲取中間元素的速度則會很慢;有序集合類型使用的散列表和跳躍表( Skip list )實現(xiàn)的,所以讀取哪部分的數(shù)據都差不多(時間復雜度是 O(logN) )。
  列表中不能簡單的調整元素的位置,但是有序集合可以(通過改變分數(shù))。
  有序集合比列表費內存(要存儲分數(shù)、散列、跳躍表)。
  二、Redis 有序集合的常用命令
  Redis 有序集合的常用命令有:  zadd ,  zrange ,  zremrangebyrank ,  zremrangebyscore ,  zcard  等,這些都是使用頻率比較高的,還有一些參數(shù)的說明等。下面來看看一起看看吧。
  1 、 ZADD 命令
  將一個或多個  member  元素及其  score  值加入到有序集  key  當中。
  如果某個  member  已經是有序集的成員,那么更新這個  member    score  值,并通過重新插入這個  member  元素,來保證該 member  在正確的位置上。
   score  值可以是整數(shù)值或雙精度浮點數(shù)。
  先用  zadd  命令批量添加一些元素到有序集合中,后面的操作都是基于這個集合進行。
  127.0.0.1:6379>  zadd  myzadd 1  a 2  b 3  c 4  d 5  e 6  f 7  d 8  e 9  f 10  tanteng.me
  ( integer) 7
  如圖所示:
Redis學習之有序集合類型的常用命令詳解
  有序集合最特別的地方在于  score  ,有了分值可以做很多事情,這個  score  不僅可以理解為分值,有時也會存時間戳,或者ip 的整形形式,可以靈活運用。
  2 、 ZRANGE 命令
  語法:  ZRANGE key start stop [WITHSCORES]
   zrange  命令用于返回有序集合中給定區(qū)間的元素。start 0 開始, stop 是結束下標,如果是負數(shù)表示從倒數(shù)開始, -1 倒數(shù)第一個, -2 倒數(shù)第二個 ……
  看下面的操作一目了然。
 127.0.0.1:6379> zrange myzadd 0 1
1) "a"
2) "b"
127.0.0.1:6379> zrange myzadd 0 5
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> zrange myzadd 1 5
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"
127.0.0.1:6379> zrange myzadd 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "tanteng.me"
  加上  WITHSCORES  參數(shù)顯示分值:
  127.0.0.1:6379> zrange myzadd 0 -1 WITHSCORES
  1) "a"
  2) "1"
  3) "b"
  4) "2"
  5) "c"
  6) "3"
  7) "d"
  8) "7"
  9) "e"10) "8"11) "f"12) "9"13) "tanteng.me"14) "10"
  3 ZREMRANGEBYRANK 命令
  語法:  ZREMRANGEBYRANK key start stop
  移除有序集中指定排名(rank) 區(qū)間內的所有成員。 start 0 開始, stop 可以為負數(shù),表示倒過來第幾位。
  127.0.0.1:6379>  zremrangebyrank  myzadd 0 2
  ( integer) 3
  執(zhí)行這個命令就刪除了前三個元素a,b,c.
  4 、 ZREMRANGEBYSCORE 命令
  語法:  ZREMRANGEBYSCORE key min max
  移除有序集  key  中,所有 score  值介于  min  和  max  之間 ( 包括等于  min  或  max ) 的成員。
  127.0.0.1:6379>  zremrangebyscore  myzadd 7 8
  ( integer) 2
  這樣一來就把分值是7 8 的元素 d,e 移除了 .
   ZREMRANGEBYRANK    ZREMRANGEBYSCORE  從字面上很好理解,都是移除元素,一個根據下標,一個根據分值。
  5 、 ZCARD 命令
  語法:  ZCARD key
  返回有序集合的基數(shù)。
  127.0.0.1:6379>  zcard  myzadd
  ( integer) 2
  經過前面的刪除元素操作,現(xiàn)在只剩2 個元素了。
  6 、 ZCOUNT 命令
  語法:  ZCOUNT key min max
   ZCOUNT  命令和  ZCARD  命令的不同是,  ZCOUNT  支持根據范圍返回元素個數(shù)。
  由于集合元素都差不多刪沒了,重新添加一組元素:
  127.0.0.1:6379>  zadd  new 100  www.baidu.com 900  www.tanteng.me 12  www.yahoo.com 90  www.xunlei.com 88 www.juanpi.com
  ( integer) 5
  如圖所示:
Redis學習之有序集合類型的常用命令詳解
  現(xiàn)在返回分值在80 100 之間的成員數(shù)量。
  127.0.0.1:6379>  zcount  new 80 100
  ( integer) 3
  返回3 個。
  在Redis 里面,還有個參數(shù) inf , -inf 表示第一個成員, +inf 表示最后一個。
  127.0.0.1:6379>  zcount  new 80 + inf
  ( integer) 4
  這里就返回4 個數(shù)量, +inf 這里表示沒有限制最高分值的意思。
  總結
  以上就是關于Redis 有序集合類型常用命令的全部內容,文章總結的還是很詳細的,希望能對大家的學習或者工作帶來一些便捷,如果有大家有疑問也可以留言交流,謝謝大家對腳本之家的支持。

來源:Linux 視野
您還未登錄,請先登錄

熱門帖子

最新帖子

?