最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年09月26日 10:59:53   投稿:daisy  
這篇文章先是給大家簡單介紹了一下有序集合類型,然后詳細整理了關于Redis有序集合類型的常用命令,通過整理的這些命令相信會給大家的工作或學習帶來一定的幫助,有需要的朋友們下面來一起看看吧。

一、有序集合類型

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

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

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

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

下面列舉區(qū)別:

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

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

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

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

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

1、ZADD命令

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

如果某個 member 已經(jīng)是有序集的成員,那么更新這個 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

如圖所示:

有序集合最特別的地方在于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移除了.

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

5、ZCARD命令

語法:ZCARD key

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

127.0.0.1:6379> zcard myzadd
(integer) 2

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

6、ZCOUNT命令

語法:ZCOUNT key min max

ZCOUNT命令和ZCARD命令的不同是,ZCOUNT支持根據(jù)范圍返回元素個數(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

如圖所示:

現(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有序集合類型常用命令的全部內容,文章總結的還是很詳細的,希望能對大家的學習或者工作帶來一些便捷,如果有大家有疑問也可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Redis集群的關閉與重啟操作

    Redis集群的關閉與重啟操作

    這篇文章主要介紹了Redis集群的關閉與重啟操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • redis?哨兵集群搭建的實現(xiàn)

    redis?哨兵集群搭建的實現(xiàn)

    本文主要介紹了redis?哨兵集群搭建的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • redis加鎖的幾種方式匯總

    redis加鎖的幾種方式匯總

    這篇文章主要介紹了redis加鎖的幾種方式匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Redis Cluster集群數(shù)據(jù)分片機制原理

    Redis Cluster集群數(shù)據(jù)分片機制原理

    這篇文章主要介紹了Redis Cluster集群數(shù)據(jù)分片機制原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Redis?Lua同步鎖實現(xiàn)源碼解析

    Redis?Lua同步鎖實現(xiàn)源碼解析

    這篇文章主要為大家介紹了Redis?Lua同步鎖實現(xiàn)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Redis添加商鋪查詢緩存功能實現(xiàn)

    Redis添加商鋪查詢緩存功能實現(xiàn)

    文章主要介紹了如何使用流程圖來設計實現(xiàn)邏輯,并詳細講解了Service層的實現(xiàn)方法,本文結合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-03-03
  • redis復制集群搭建的實現(xiàn)

    redis復制集群搭建的實現(xiàn)

    redis 復制集群是開發(fā)中一種比較常用的集群模式,本文主要介紹了redis復制集群搭建的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 使用JMeter插件Redis Data Set如何實現(xiàn)高性能數(shù)據(jù)驅動測試

    使用JMeter插件Redis Data Set如何實現(xiàn)高性能數(shù)據(jù)驅動測試

    RedisDataSet插件是JMeter的一個插件,可以實現(xiàn)從Redis中動態(tài)加載數(shù)據(jù),并將其用作測試參數(shù),本文詳細介紹如何在JMeter中使用RedisDataSet插件,幫助你實現(xiàn)高效的數(shù)據(jù)驅動測試
    2025-01-01
  • Redis?存儲對象信息用?Hash?和String的區(qū)別

    Redis?存儲對象信息用?Hash?和String的區(qū)別

    這篇文章主要介紹了Redis存儲對象信息用Hash和String的區(qū)別,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • redis專屬鏈表ziplist的使用

    redis專屬鏈表ziplist的使用

    本文主要介紹了redis專屬鏈表ziplist的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論

房产| 贵州省| 郎溪县| 青神县| 富平县| 于田县| 潼南县| 毕节市| 监利县| 鱼台县| 平阳县| 高平市| 新宾| 天气| 毕节市| 商水县| 四平市| 绥德县| 芜湖县| 天峻县| 永新县| 札达县| 新津县| 建宁县| 东乡族自治县| 湘潭县| 六安市| 崇信县| 连城县| 保定市| 民县| 库车县| 汪清县| 中牟县| 乡城县| 浑源县| 高密市| 花垣县| 类乌齐县| 茂名市| 富平县|