1. 程式人生 > >Redis常用命令(5)SortKey型別

Redis常用命令(5)SortKey型別

一、相關命令列表說明:

命令原型 時間複雜度 命令描述 返回值

*ZADD key score member [score] [member]*
新增引數中指定的所有成員及其分數到指定key的Sorted-Set中,在該命令中我們可以指定多組score/member作為引數。如果在新增時引數中的某一成員已經存在,該命令將更新此成員的分數為新值,同時再將該成員基於新值重新排序。如果鍵不存在,該命令將為該鍵建立一個新的Sorted-Sets Value,並將score/member對插入其中。如果該鍵已經存在,但是與其關聯的Value不是Sorted-Sets型別,相關的錯誤資訊將被返回。
本次操作實際插入的成員數量。

ZCARD key
獲取與該Key相關聯的Sorted-Sets中包含的成員數量。
返回Sorted-Sets中的成員數量,如果該Key不存在,返回0。

ZCOUNT key min max
該命令用於獲取分數(score)在min和max之間的成員數量。針對min和max引數需要額外說明的是,-inf和+inf分別表示Sorted-Sets中分數的最高值和最低值。預設情況下,min和max表示的範圍是閉區間範圍,即min <= score <= max內的成員將被返回。然而我們可以通過在min和max的前面新增”(“字元來表示開區間,如(min max表示min < score <= max,而(min (max表示min < score < max。 分數指定範圍內成員的數量。

ZINCRBY key increment member
該命令將為指定Key中的指定成員增加指定的分數。如果成員不存在,該命令將新增該成員並假設其初始分數為0,此後再將其分數加上increment。如果Key不存,該命令將建立該Key及其關聯的Sorted-Sets,幷包含引數指定的成員,其分數為increment引數。如果與該Key關聯的不是Sorted-Sets型別,相關的錯誤資訊將被返回。 以字串形式表示的新分數。

ZRANGE key start stop [WITHSCORES]
該命令返回順序在引數start和stop指定範圍內的成員,這裡start和stop引數都是0-based,即0表示第一個成員,-1表示最後一個成員。如果start大於該Sorted-Set中的最大索引值,或start > stop,此時一個空集合將被返回。如果stop大於最大索引值,該命令將返回從start到集合的最後一個成員。如果命令中帶有可選引數WITHSCORES選項,該命令在返回的結果中將包含每個成員的分數值,如value1,score1,value2,score2…。  
返回索引在start和stop之間的成員列表。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
該命令將返回分數在min和max之間的所有成員,即滿足表示式min <= score <= max的成員,其中返回的成員是按照其分數從低到高的順序返回,如果成員具有相同的分數,則按成員的字典順序返回。可選引數LIMIT用於限制返回成員的數量範圍。可選引數offset表示從符合條件的第offset個成員開始返回,同時返回count個成員。可選引數WITHSCORES的含義參照ZRANGE中該選項的說明。最後需要說明的是引數中min和max的規則可參照命令ZCOUNT。 返回分數在指定範圍內的成員列表。

ZRANK key member
Sorted-Set中的成員都是按照分數從低到高的順序儲存,該命令將返回引數中指定成員的位置值,其中0表示第一個成員,它是Sorted-Set中分數最低的成員。 如果該成員存在,則返回它的位置索引值。否則返回nil。

ZREM key member [member …]
該命令將移除引數中指定的成員,其中不存在的成員將被忽略。如果與該Key關聯的Value不是Sorted-Set,相應的錯誤資訊將被返回。 實際被刪除的成員數量。

ZREVRANGE key start stop [WITHSCORES]
該命令的功能和ZRANGE基本相同,唯一的差別在於該命令是通過反向排序獲取指定位置的成員,即從高到低的順序。如果成員具有相同的分數,則按降序字典順序排序。
返回指定的成員列表。

ZREVRANK key member
該命令的功能和ZRANK基本相同,唯一的差別在於該命令獲取的索引是從高到低排序後的位置,同樣0表示第一個元素,即分數最高的成員。 如果該成員存在,則返回它的位置索引值。否則返回nil。

ZSCORE key member
獲取指定Key的指定成員的分數。 如果該成員存在,以字串的形式返回其分數,否則返回nil。

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
該命令除了排序方式是基於從高到低的分數排序之外,其它功能和引數含義均與ZRANGEBYSCORE相同。 返回分數在指定範圍內的成員列表。

ZREMRANGEBYRANK key start stop
刪除索引位置位於start和stop之間的成員,start和stop都是0-based,即0表示分數最低的成員,-1表示最後一個成員,即分數最高的成員。
被刪除的成員數量。

ZREMRANGEBYSCORE key min max
刪除分數在min和max之間的所有成員,即滿足表示式min <= score <= max的所有成員。對於min和max引數,可以採用開區間的方式表示,具體規則參照ZCOUNT。
被刪除的成員數量。

二、命令示例:

   1. ZADD/ZCARD/ZCOUNT/ZREM/ZINCRBY/ZSCORE/ZRANGE/ZRANK:
    #在Shell的命令列下啟動Redis客戶端工具。
    /> redis-cli
    #新增一個分數為1的成員。
    redis 127.0.0.1:6379> zadd myzset 1 "one"
    (integer) 1
    #新增兩個分數分別是2和3的兩個成員。
    redis 127.0.0.1:6379> zadd myzset 2 "two" 3 "three"
    (integer) 2
    #0表示第一個成員,-1表示最後一個成員。WITHSCORES選項表示返回的結果中包含每個成員及其分數,否則只返回成員。
    redis 127.0.0.1:6379> zrange myzset 0 -1 WITHSCORES
    1) "one"
    2) "1"
    3) "two"
    4) "2"
    5) "three"
    6) "3"
    #獲取成員one在Sorted-Set中的位置索引值。0表示第一個位置。
    redis 127.0.0.1:6379> zrank myzset one
    (integer) 0
    #成員four並不存在,因此返回nil。
    redis 127.0.0.1:6379> zrank myzset four
    (nil)
    #獲取myzset鍵中成員的數量。    
    redis 127.0.0.1:6379> zcard myzset
    (integer) 3
    #返回與myzset關聯的Sorted-Set中,分數滿足表示式1 <= score <= 2的成員的數量。
    redis 127.0.0.1:6379> zcount myzset 1 2
    (integer) 2
    #刪除成員one和two,返回實際刪除成員的數量。
    redis 127.0.0.1:6379> zrem myzset one two
    (integer) 2
    #檢視是否刪除成功。
    redis 127.0.0.1:6379> zcard myzset
    (integer) 1
    #獲取成員three的分數。返回值是字串形式。
    redis 127.0.0.1:6379> zscore myzset three
    "3"
    #由於成員two已經被刪除,所以該命令返回nil。
    redis 127.0.0.1:6379> zscore myzset two
    (nil)
    #將成員one的分數增加2,並返回該成員更新後的分數。
    redis 127.0.0.1:6379> zincrby myzset 2 one
    "3"
    #將成員one的分數增加-1,並返回該成員更新後的分數。
    redis 127.0.0.1:6379> zincrby myzset -1 one
    "2"
    #檢視在更新了成員的分數後是否正確。
    redis 127.0.0.1:6379> zrange myzset 0 -1 WITHSCORES
    1) "one"
    2) "2"
    3) "two"
    4) "2"
    5) "three"
    6) "3"

   2. ZRANGEBYSCORE/ZREMRANGEBYRANK/ZREMRANGEBYSCORE
    redis 127.0.0.1:6379> del myzset
    (integer) 1
    redis 127.0.0.1:6379> zadd myzset 1 one 2 two 3 three 4 four
    (integer) 4
    #獲取分數滿足表示式1 <= score <= 2的成員。
    redis 127.0.0.1:6379> zrangebyscore myzset 1 2
    1) "one"
    2) "two"
    #獲取分數滿足表示式1 < score <= 2的成員。
    redis 127.0.0.1:6379> zrangebyscore myzset (1 2
    1) "two"
    #-inf表示第一個成員,+inf表示最後一個成員,limit後面的引數用於限制返回成員的自己,
    #2表示從位置索引(0-based)等於2的成員開始,去後面3個成員。
    redis 127.0.0.1:6379> zrangebyscore myzset -inf +inf limit 2 3
    1) "three"
    2) "four"
    #刪除分數滿足表示式1 <= score <= 2的成員,並返回實際刪除的數量。
    redis 127.0.0.1:6379> zremrangebyscore myzset 1 2
    (integer) 2
    #看出一下上面的刪除是否成功。
    redis 127.0.0.1:6379> zrange myzset 0 -1
    1) "three"
    2) "four"
    #刪除位置索引滿足表示式0 <= rank <= 1的成員。
    redis 127.0.0.1:6379> zremrangebyrank myzset 0 1
    (integer) 2
    #檢視上一條命令是否刪除成功。
    redis 127.0.0.1:6379> zcard myzset
    (integer) 0

   3. ZREVRANGE/ZREVRANGEBYSCORE/ZREVRANK:
    #為後面的示例準備測試資料。
    redis 127.0.0.1:6379> del myzset
    (integer) 0
    redis 127.0.0.1:6379> zadd myzset 1 one 2 two 3 three 4 four
    (integer) 4
    #以位置索引從高到低的方式獲取並返回此區間內的成員。
    redis 127.0.0.1:6379> zrevrange myzset 0 -1 WITHSCORES
    1) "four"
    2) "4"
    3) "three"
    4) "3"
    5) "two"
    6) "2"
    7) "one"
    8) "1"
    #由於是從高到低的排序,所以位置等於0的是four,1是three,並以此類推。
    redis 127.0.0.1:6379> zrevrange myzset 1 3
    1) "three"
    2) "two"
    3) "one"
    #由於是從高到低的排序,所以one的位置是3。
    redis 127.0.0.1:6379> zrevrank myzset one
    (integer) 3
    #由於是從高到低的排序,所以four的位置是0。
    redis 127.0.0.1:6379> zrevrank myzset four
    (integer) 0
    #獲取分數滿足表示式3 >= score >= 0的成員,並以相反的順序輸出,即從高到底的順序。
    redis 127.0.0.1:6379> zrevrangebyscore myzset 3 0
    1) "three"
    2) "two"
    3) "one"
    #該命令支援limit選項,其含義等同於zrangebyscore中的該選項,只是在計算位置時按照相反的順序計算和獲取。
    redis 127.0.0.1:6379> zrevrangebyscore myzset 4 0 limit 1 2
    1) "three"
    2) "two"

相關推薦

Redis常用命令5SortKey型別

一、相關命令列表說明: 命令原型 時間複雜度 命令描述 返回值 *ZADD key score member [score] [member]* 新增引數中指定的所有成員及其分數到指定key的Sorted-Set中,在該命令

Redis常用命令3Hash型別

一、相關命令列表說明: 命令原型 時間複雜度 命令描述 返回值 HSET key field value 為指定的Key設定Field/Value對,如果Key不存在,該命令將建立新Key以引數中的Field/Value對,

Redis常用命令1String型別

一、相關命令列表說明: 命令原型 時間複雜度 命令描述 返回值 ————————String型別—————– APPEND key value 如果該Key已經存在,APPEND命令將

DAY-9 Linux基礎及常用命令5

mod conf 自己的路 linux操作 解包 二進制安裝 netstat iptables usr 一、Samba(類似共享網盤) 1、功能:Linux操作系統給win用戶共享文件用 2、如何部署 》》準備環境:iptables –F(清除防火墻)、systemctl

Linux基礎系列:常用命令5_nfs服務與nginx服務

ash .com access emctl 磁盤 keepalive roo inux iptable 介紹:   NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過

總結Linux 、Redis 操作常用命令

tab ESS 哈希 大對象 由於 edi always wan 情況下 Redis的配置 1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程 daemonize no 2. 當Redis以守護進程方式運行時,Redis默認會把

Redis 學習筆記5—— Redis sortSet 型別

1 sortSet 1.1 案例1 package sortset; import redis.clients.jedis.Jedis; import java.util.Set; public

Redis 基礎知識5種資料型別基本操作

1、字串 set key1value1  //value1不僅可以是字串,也可以是整數或者浮點數。 get key1                     //獲取值 del key1              //刪除值 既然value1可以為數值型,因此可以對key1

redis常用命令個人總結docker中redis容器

1.進入docker的redis docker exec -it [IP] redis-cli 2.執行操作之前要驗證密碼Authentication required auth 12345678 3.檢視 key、根據key搜尋可以用萬

Linux基礎系列:常用命令2

用戶和組 查看 -- tdi 作業二 其他 配置文件 解鎖 gid 1 作業一: 2 1) 新建用戶natasha,uid為1000,gid為555,備註信息為“master” 3 groupadd -g 555 natasha 4 useradd -u

DAY-8 Linux基礎及常用命令4

打開 ip地址 grep 軟件包 linux基礎 tro mks 官網 vim 一、制作swap分區(命令) swapon –s 查看當前激活狀態的swap分區 free –m 以m為單位查看分區 swapoff關閉分區 swapon打開分區 添加swap分區——mks

轉每天一個linux命令5:rm 命令

每天 幫助信息 rbo 總計 com 刪除 強行 高度 linux中 昨天學習了創建文件和目錄的命令mkdir ,今天學習一下linux中刪除文件和目錄的命令: rm命令。rm是常用的命令,該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文

004-Linux下操作目錄常用命令mkdir

刪除目錄 note 當前 目錄 name ges 否則 技術分享 mdi 1,mkdir 創建目錄 當前目錄下創建一個目錄 mkdir dir 創建含有子目錄的方式 mkdir -p dir/t11/t1

LINUX常用命令

linux 基礎 初學者 常用 侯良金 LINUX常用命令(一)一、Red hat 系統開機引導過程1、linux操作系統的引導過程一般包括以下幾個階段:開機自檢、MBR引導、GRUB菜單、加載Linux內核、init進程初始化。2、Linux系統中的進程使用數字進行標記,每個進程

Linux常用命令程序的安裝與管理

rpm 編譯安裝 侯良金 linux 安裝軟件 Linux常用命令(四)程序的安裝與管理一、Linux應用程序基礎1、Linux應用程序的組成■普通的可執行程序文件。一般保存在“/usr/bin”目錄中,普通用戶即可執行。■服務器程序、管理程序文件。一般保存在“/usr/sbin”

Linux常用命令賬號和組管理

linux 用戶 組 常用命令 侯良金 Linux常用命令(五)賬號和組管理 一、管理用戶賬號 1、用戶賬號的分類■超級用戶:root用戶是Linux系統中默認的超級用戶賬號,對本主機擁有最大的權限,類似於Windows 系統中的Administrator用戶。■普通用戶:

Linux常用命令LVM邏輯卷管理

侯良金 linux lvm 邏輯卷 動態擴容 Linux常用命令(八)LVM邏輯卷管理一、LVM概述 LVM是Linux系統中對磁盤分區進行管理的一種邏輯機制,它是建立在硬盤和分區之上,文件系統之下的一個邏輯層,在建立文件系統時屏蔽了下層的磁盤分區布局,能夠在保持現有數據不變

Linux 常用命令

技術 alt http es2017 mage inux lin 常用命令 .cn 1. cd、pwd 2. ls 3. 文件移動等操作 4. 刪除操作 5. 特殊符號 3. \  轉義字符 6. 常用寫法 Linux 常用命令(一)

linux---常用命令

inux sca 列表 以太網 動態顯示 顯示行號 最大化 locate war 常用命令 文件與目錄操作 命令解析 cd /home 進入 ‘/home’ 目錄 cd .. 返回上一級目錄 cd ../.. 返回上兩級目錄 cd - 返回上次所在目錄

碼海拾遺:Linux常用命令

spa /usr 使用 virtual 復制文件 壓縮包 文件中 常用 目錄   一、Linux系統安裝   系統安裝可以分兩類:實體機安裝Linux,虛擬機(常用虛擬機軟件有兩種:VMware和VirtualBox)安裝Linux。   安裝過程網上有很多教程,這裏就不贅