1. 程式人生 > >Redis資料型別之有序集合型別

Redis資料型別之有序集合型別

在集合型別的基礎上有序集合型別為集合中的每個元素都關聯了一個分數,這使得我們不僅可以完成插入、刪除和判斷元素是否存在等集合型別支援的操作,還能夠獲得分數最高(或最低)的前N個元素、獲得指定分數範圍的元素等與分數有關的操作。雖然集合中每個元素都是不同的,但它們的分數可以相同。

1.增加元素

zadd key score member [score member...]

zadd命令用來向有序集合中加入一個元素和該元素的分數,如果該元素已經存在則會用新的分數替換原來的分數。

分數不僅可以是整數,還支援雙精度浮點數。

+inf和-inf分別表示正無窮和負無窮。

2.獲取元素的分數

zscore key member

3.獲取排名在某個範圍的元素列表

zrange key start stop [withscores]
zrevrange key start stop [withscores]    按分數從大到小的排序

4.獲得指定分數範圍的元素

zrangebyscore key min max [withscores] [limit offset count]

zrangebyscore 命令引數雖然多,但是都好理解。該命令按照元素分數從小到大的順序返回分數在min和max之間(包含min和max)的元素。

如果希望分數範圍不包含端點值,可以在分數前加上"("符號。如,希望返回80到100分的資料,可以含80分,但不包含100分,則可以這麼寫:

zrangebyscore zs 80 (100 withscores

瞭解SQL語句的讀者對limit offset count應該很熟悉,在本命令中limit offset count 與SQL中的用法基本相同,即在獲得的元素列表的基礎上向後偏移offset個元素,並且只獲取前count個元素。

zrevrangebyscore key max min [withscores] [limit offset count]

5.增加某個元素的分數

zincrby key increment member

6.獲得集合中元素的數量

zcard key 

7.獲得指定分數範圍內的元素個數

zcount key min max

8.刪除一個或多個元素

zrem key member [member...]

9.按照排名範圍刪除元素

zremrangebyrank key start stop

zremrangebyrank 命令按照元素分數從小到大的順序(即索引0表示最小的值)刪除處在指定排名範圍內的所有元素。

10.按照分數範圍刪除元素

zremrangebyscore key min max

11.獲得元素的排名

zrank key member
zrevrank key member