7.Redis常用命令:ZSet
Sorted-Sets和Sets類型極為相似,它們都是字符串的集合,都不允許重復的成員出現在一個Set中。它們之間的主要差別是Sorted-Sets中的每一個成員都會有一個分數(score)與之關聯,Redis正是通過分數來為集合中的成員進行從小到大的排序。然而需要額外指出的是,盡管Sorted-Sets中的成員必須是唯一的,但是分數(score)卻是可以重復的。
在Sorted-Set中添加、刪除或更新一個成員都是非常快速的操作,其時間復雜度為集合中成員數量的對數。由于Sorted-Sets中的成員在集合中的位置是有序的,因此,即便是訪問位于集合中部的成員也仍然是非常高效的。事實上,Redis所具有的這一特征在很多其它類型的數據庫中是很難實現的,換句話說,在該點上要想達到和Redis同樣的高效,在其它數據庫中進行建模是非常困難的。
1、ZADD key score member [score] [member]
增加多個成員
127.0.0.1:6379> zadd CountryPower 99 America 90 China 97 Russia 80 Brazil 89 Japan (integer) 5 127.0.0.1:6379> zrange CountryPower 0 -1 withscores1) "Brazil"2) "80"3) "Japan"4) "89"5) "China"6) "90"7) "Russia"8) "97"9) "America" 10) "99"2、ZREM key member [member ...]
該命令將移除參數中指定的成員,其中不存在的成員將被忽略。
127.0.0.1:6379> zrange CountryPower 0 -1 withscores1) "Brazil"2) "80"3) "Japan"4) "89"5) "China"6) "90"7) "Russia"8) "97"9) "America" 10) "99" 127.0.0.1:6379> zrem CountryPower Brazil Japan (integer) 2 127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "90" 3) "Russia" 4) "97" 5) "America" 6) "99"3、ZINCRBY key increment member
為key中的member加指定分數(increment)
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "90" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zincrby CountryPower 5 China //為中國增加5點 "95" 127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99"4、ZSCORE key member
獲取指定Key的指定成員的分數
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zscore CountryPower China "95"5、ZRANK key member
返回成員在列表中的下標
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zrank CountryPower Russia (integer) 16、ZREVRANK key member?
該命令的功能和ZRANK基本相同,唯一的差別在于該命令獲取的索引是從高到低排序后的位置,同樣0表示第一個元素,即分數最高的成員。
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zrank CountryPower America (integer) 2 127.0.0.1:6379> zrevrank CountryPower America (integer) 07、ZCARD key
成員數量
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zcard CountryPower (integer) 38、ZCOUNT key min max
計算分數在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。
127.0.0.1:6379> zrange CountryPower 0 -1 withscores1) "France"2) "85"3) "German"4) "88"5) "Japan"6) "89"7) "China"8) "95"9) "Russia" 10) "97" 11) "America" 12) "99" 127.0.0.1:6379> zcount CountryPower 90 +inf //從90分到最高分 (integer) 3 127.0.0.1:6379> zcount CountryPower -inf 90 //從最低分到90分 (integer) 3 127.0.0.1:6379> zcount CountryPower 85 89 //從85分(包含)到89分(包含) (integer) 3 127.0.0.1:6379> zcount CountryPower (85 (89 //從85分(不包含)到89分(不包含) (integer) 1---------------------- ?范圍篩選 ?---------------------- ?
9、ZRANGE key start stop [WITHSCORES]?
截取范圍內的成員(自選帶分數)
127.0.0.1:6379> zrange CountryPower 0 -1 withscores1) "France"2) "85"3) "German"4) "88"5) "Japan"6) "89"7) "China"8) "95"9) "Russia" 10) "97" 11) "America" 12) "99"10、ZREVRANGE key start stop [WITHSCORES]
該命令的功能和ZRANGE基本相同,唯一的差別在于該命令是通過反向排序獲取指定位置的成員,即從高到低的順序。
127.0.0.1:6379> zrevrange CountryPower 0 -1 withscores1) "America"2) "99"3) "Russia"4) "97"5) "China"6) "95"7) "Japan"8) "89"9) "German" 10) "88" 11) "France" 12) "85"11、ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]?
返回分數滿足表達式min <= score <= max的成員,其中返回的成員是按照其分數從低到高的順序返回,如果成員具有相同的分數,則按成員的字典順序返回。LIMIT用于限制返回成員的數量范圍。可選參數offset表示從符合條件的第offset個成員開始返回,同時返回count個成員。參數中min和max的規則可參照命令ZCOUNT
127.0.0.1:6379> zrevrange CountryPower 0 -1 withscores1) "America"2) "99"3) "Russia"4) "97"5) "China"6) "95"7) "Japan"8) "89"9) "German" 10) "88" 11) "France" 12) "85" 127.0.0.1:6379> zrangebyscore CountryPower 90 99 withscores //95 97 99 1) "China" 2) "95" 3) "Russia" 4) "97" 5) "America" 6) "99" 127.0.0.1:6379> zrangebyscore CountryPower 90 99 withscores limit 1 2 //從取得的結果,從下標為1開始取,取2個 1) "Russia" 2) "97" 3) "America" 4) "99"12、ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
該命令除了排序方式是基于從高到低的分數排序之外,其它功能和參數含義均與ZRANGEBYSCORE相同。
127.0.0.1:6379> zrevrangebyscore CountryPower 99 90 withscores 1) "America" 2) "99" 3) "Russia" 4) "97" 5) "China" 6) "95" 127.0.0.1:6379> zrevrangebyscore CountryPower 99 90 withscores limit 0 2 1) "America" 2) "99" 3) "Russia" 4) "97"------------- ?批量刪除?-------------
13、ZREMRANGEBYRANK key start stop
刪除索引位置位于start和stop之間的成員,start和stop都是0-based,即0表示分數最低的成員,-1表示最后一個成員,即分數最高的成員。
127.0.0.1:6379> zrange CountryPower 0 -1 withscores1) "France"2) "85"3) "German"4) "88"5) "Japan"6) "89"7) "China"8) "95"9) "Russia" 10) "97" 11) "America" 12) "99" 127.0.0.1:6379> zremrangebyrank CountryPower 0 1 (integer) 2 127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "Japan" 2) "89" 3) "China" 4) "95" 5) "Russia" 6) "97" 7) "America" 8) "99"14、ZREMRANGEBYSCORE key min max
刪除分數在min和max之間的所有成員,即滿足表達式min <= score <= max的所有成員。對于min和max參數,可以采用開區間的方式表示,具體規則參照ZCOUNT。
127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "Japan" 2) "89" 3) "China" 4) "95" 5) "Russia" 6) "97" 7) "America" 8) "99" 127.0.0.1:6379> zremrangebyscore CountryPower -inf 95 //刪除95分(含)以下的 (integer) 2 127.0.0.1:6379> zrange CountryPower 0 -1 withscores 1) "Russia" 2) "97" 3) "America" 4) "99"?
轉載于:https://www.cnblogs.com/chanshuyi/p/5231902.html
總結
以上是生活随笔為你收集整理的7.Redis常用命令:ZSet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】栈的压入、弹出序列
- 下一篇: 【Android实战】记录自学自己定义G