麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Redis > 正文

Redis有序集合類型的常用命令

2020-02-17 14:53:56
字體:
來源:轉載
供稿:網友

武林小編在這篇文章先是給大家簡單介紹了一下有序集合類型,然后詳細整理了關于Redis有序集合類型的常用命令,通過整理的這些命令相信會給大家的工作或學習帶來一定的幫助,有需要的朋友們下面跟隨武林技術頻道的編輯來一起看看吧。

一、有序集合類型

有序集合類型,大家從名字上應該就可以知道,實際上就是在集合類型上加了個有序而已。Redis中的有序集合類型,實際上是在集合類型上,為每個元素都關聯一個分數,有序實際上說的是分數有序,我們根據分數的范圍獲取集合及其他操作。集合的元素依然是不能夠相同的,但是分數可以相同。

下面列舉有序集合和類型和列表類型的相似處:

①兩者都是有序的(廢話!)

②兩者都可以獲得某一范圍的元素

下面列舉區別:

①列表是鏈表實現的,靠近兩邊的數據讀取極快,而元素過多后獲取中間元素的速度則會很慢;有序集合類型使用的散列表和跳躍表(Skip list)實現的,所以讀取哪部分的數據都差不多(時間復雜度是O(logN))。

②列表中不能簡單的調整元素的位置,但是有序集合可以(通過改變分數)。

③有序集合比列表費內存(要存儲分數、散列、跳躍表)。

二、Redis有序集合的常用命令

Redis有序集合的常用命令有:zadd,zrange,zremrangebyrank,zremrangebyscore,zcard等,這些都是使用頻率比較高的,還有一些參數的說明等。下面來看看一起看看吧。

1、ZADD命令

將一個或多個 member 元素及其 score 值加入到有序集 key 當中。

如果某個 member 已經是有序集的成員,那么更新這個 member score 值,并通過重新插入這個 member 元素,來保證該 member 在正確的位置上。

score 值可以是整數值或雙精度浮點數。

先用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

如圖所示:

有序集合最特別的地方在于score,有了分值可以做很多事情,這個score不僅可以理解為分值,有時也會存時間戳,或者ip的整形形式,可以靈活運用。

2、ZRANGE命令

語法:ZRANGE key start stop [WITHSCORES]

zrange命令用于返回有序集合中給定區間的元素。start從0開始,stop是結束下標,如果是負數表示從倒數開始,-1倒數第一個,-2倒數第二個……

看下面的操作一目了然。

127.0.0.1:6379> zrange myzadd 0 11) "a"2) "b"127.0.0.1:6379> zrange myzadd 0 51) "a"2) "b"3) "c"4) "d"5) "e"6) "f"127.0.0.1:6379> zrange myzadd 1 51) "b"2) "c"3) "d"4) "e"5) "f"127.0.0.1:6379> zrange myzadd 0 -11) "a"2) "b"3) "c"4) "d"5) "e"6) "f"7) "tanteng.me"

加上WITHSCORES參數顯示分值:

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)區間內的所有成員。start從0開始,stop可以為負數,表示倒過來第幾位。

127.0.0.1:6379> zremrangebyrank myzadd 0 2(integer) 3

執行這個命令就刪除了前三個元素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移除了.

ZREMRANGEBYRANKZREMRANGEBYSCORE從字面上很好理解,都是移除元素,一個根據下標,一個根據分值。

5、ZCARD命令

語法:ZCARD key

返回有序集合的基數。

127.0.0.1:6379> zcard myzadd(integer) 2

經過前面的刪除元素操作,現在只剩2個元素了。

6、ZCOUNT命令

語法:ZCOUNT key min max

ZCOUNT命令和ZCARD命令的不同是,ZCOUNT支持根據范圍返回元素個數。

由于集合元素都差不多刪沒了,重新添加一組元素:

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

如圖所示:

現在返回分值在80和100之間的成員數量。

127.0.0.1:6379> zcount new 80 100(integer) 3

返回3個。

在Redis里面,還有個參數inf,-inf表示第一個成員,+inf表示最后一個。

127.0.0.1:6379> zcount new 80 +inf(integer) 4

這里就返回4個數量,+inf這里表示沒有限制最高分值的意思。

總結

以上就是關于Redis有序集合類型常用命令的全部內容,文章總結的還是很詳細的,希望能對大家的學習或者工作帶來一些便捷,如果有大家有疑問也可以留言交流,謝謝大家對武林技術頻道的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 久久精品亚洲一区二区三区观看模式 | 最近高清无吗免费看 | 免费国产视频在线观看 | 国产午夜免费不卡精品理论片 | 欧美在线观看视频一区 | 国产成人精品一区在线播放 | 成av在线 | 日韩大片在线永久观看视频网站免费 | 欧美精品一区二区性色 | 免费在线成人网 | 日韩一级精品 | 91看片在线观看视频 | 第一区免费在线观看 | 成人超碰97 | 欧美爱爱一区二区 | 欧美成人影院 | 欧美日韩亚洲视频 | 一级在线观看视频 | 夏目友人帐第七季第一集 | 国产免费永久在线观看 | 激情视频在线播放 | 91精品国产刺激国语对白 | 精品一区二区在线播放 | 欧美精品一区二区三区久久久 | 成人毛片在线免费看 | 午色影院 | 国内精品伊人久久久久网站 | 成年人视频免费看 | 国产精品成人免费一区久久羞羞 | 午夜影院a | 88xx成人精品视频 | 伊人午夜视频 | 国产jjizz一区二区三区视频 | 午夜视频观看 | 欧美成人小视频 | 永久免费黄色大片 | 国产精品99久久久久久大便 | 欧美精品久久久久久久久老牛影院 | 福利在线免费视频 | 国产a级网站| 最新影院 |