濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Redis有序集合類(lèi)型的常用命令小結(jié)

Redis有序集合類(lèi)型的常用命令小結(jié)

熱門(mén)標(biāo)簽:玄武湖地圖標(biāo)注 小紅書(shū)怎么地圖標(biāo)注店 百度商家地圖標(biāo)注怎么做 竹間科技AI電銷(xiāo)機(jī)器人 地圖標(biāo)注費(fèi)用 太原營(yíng)銷(xiāo)外呼系統(tǒng) 西藏教育智能外呼系統(tǒng)價(jià)格 地圖標(biāo)注如何即時(shí)生效 最簡(jiǎn)單的百度地圖標(biāo)注

一、有序集合類(lèi)型

有序集合類(lèi)型,大家從名字上應(yīng)該就可以知道,實(shí)際上就是在集合類(lèi)型上加了個(gè)有序而已。Redis中的有序集合類(lèi)型,實(shí)際上是在集合類(lèi)型上,為每個(gè)元素都關(guān)聯(lián)一個(gè)分?jǐn)?shù),有序?qū)嶋H上說(shuō)的是分?jǐn)?shù)有序,我們根據(jù)分?jǐn)?shù)的范圍獲取集合及其他操作。集合的元素依然是不能夠相同的,但是分?jǐn)?shù)可以相同。

下面列舉有序集合和類(lèi)型和列表類(lèi)型的相似處:

      ①兩者都是有序的(廢話?。?/p>

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

下面列舉區(qū)別:

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

      ②列表中不能簡(jiǎn)單的調(diào)整元素的位置,但是有序集合可以(通過(guò)改變分?jǐn)?shù))。

      ③有序集合比列表費(fèi)內(nèi)存(要存儲(chǔ)分?jǐn)?shù)、散列、跳躍表)。

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

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

1、ZADD命令

將一個(gè)或多個(gè) member 元素及其 score 值加入到有序集 key 當(dāng)中。

如果某個(gè) member 已經(jīng)是有序集的成員,那么更新這個(gè) member score 值,并通過(guò)重新插入這個(gè) member 元素,來(lái)保證該 member 在正確的位置上。

score 值可以是整數(shù)值或雙精度浮點(diǎn)數(shù)。

先用zadd命令批量添加一些元素到有序集合中,后面的操作都是基于這個(gè)集合進(jìn)行。

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,有了分值可以做很多事情,這個(gè)score不僅可以理解為分值,有時(shí)也會(huì)存時(shí)間戳,或者ip的整形形式,可以靈活運(yùn)用。

2、ZRANGE命令

語(yǔ)法:ZRANGE key start stop [WITHSCORES]

zrange命令用于返回有序集合中給定區(qū)間的元素。start從0開(kāi)始,stop是結(jié)束下標(biāo),如果是負(fù)數(shù)表示從倒數(shù)開(kāi)始,-1倒數(shù)第一個(gè),-2倒數(shù)第二個(gè)……

看下面的操作一目了然。

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命令

語(yǔ)法:ZREMRANGEBYRANK key start stop

移除有序集中指定排名(rank)區(qū)間內(nèi)的所有成員。start從0開(kāi)始,stop可以為負(fù)數(shù),表示倒過(guò)來(lái)第幾位。

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

執(zhí)行這個(gè)命令就刪除了前三個(gè)元素a,b,c.

4、ZREMRANGEBYSCORE命令

語(yǔ)法:ZREMRANGEBYSCORE key min max

移除有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。

127.0.0.1:6379> zremrangebyscore myzadd 7 8
(integer) 2

這樣一來(lái)就把分值是7和8的元素d,e移除了.

ZREMRANGEBYRANKZREMRANGEBYSCORE從字面上很好理解,都是移除元素,一個(gè)根據(jù)下標(biāo),一個(gè)根據(jù)分值。

5、ZCARD命令

語(yǔ)法:ZCARD key

返回有序集合的基數(shù)。

127.0.0.1:6379> zcard myzadd
(integer) 2

經(jīng)過(guò)前面的刪除元素操作,現(xiàn)在只剩2個(gè)元素了。

6、ZCOUNT命令

語(yǔ)法:ZCOUNT key min max

ZCOUNT命令和ZCARD命令的不同是,ZCOUNT支持根據(jù)范圍返回元素個(gè)數(shù)。

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

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

如圖所示:

現(xiàn)在返回分值在80和100之間的成員數(shù)量。

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

返回3個(gè)。

在Redis里面,還有個(gè)參數(shù)inf,-inf表示第一個(gè)成員,+inf表示最后一個(gè)。

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

這里就返回4個(gè)數(shù)量,+inf這里表示沒(méi)有限制最高分值的意思。

總結(jié)

以上就是關(guān)于Redis有序集合類(lèi)型常用命令的全部?jī)?nèi)容,文章總結(jié)的還是很詳細(xì)的,希望能對(duì)大家的學(xué)習(xí)或者工作帶來(lái)一些便捷,如果有大家有疑問(wèn)也可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Redis的5種數(shù)據(jù)類(lèi)型與常用命令講解
  • Redis安裝配置與常用命令
  • Redis中散列類(lèi)型的常用命令小結(jié)
  • Redis字符串類(lèi)型的常用命令小結(jié)
  • redis常用命令整理

標(biāo)簽:揚(yáng)州 廣東 澳門(mén) 景德鎮(zhèn) 贛州 林芝 香港 唐山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis有序集合類(lèi)型的常用命令小結(jié)》,本文關(guān)鍵詞  Redis,有序,集合,類(lèi)型,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis有序集合類(lèi)型的常用命令小結(jié)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Redis有序集合類(lèi)型的常用命令小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    额尔古纳市| 松桃| 车致| 东至县| 钟山县| 娱乐| 从化市| 惠来县| 高碑店市| 兴安盟| 乐业县| 山东省| 浦县| 舟山市| 大方县| 马山县| 湘西| 汤阴县| 运城市| 兴隆县| 田林县| 大悟县| 深州市| 巴彦淖尔市| 临沂市| 巴楚县| 烟台市| 泗阳县| 天峨县| 定远县| 新乡县| 新乡市| 伽师县| 友谊县| 津市市| 黄龙县| 荃湾区| 南乐县| 离岛区| 佛山市| 商洛市|