天天看點

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

如果M是常量(比如,用limit總是請求前10個元素),你可以認為是O(log(N))。

傳回key的有序集合中的分數在min和max之間的所有元素(包括分數等于max或者min的元素)。元素被認為是從低分到高分排序的。

具有相同分數的元素按字典序排列(這個根據redis對有序集合實作的情況而定,并不需要進一步計算)。

可選的LIMIT參數指定傳回結果的數量及區間(類似SQL中SELECT LIMIT offset, count)。注意,如果offset太大,定位offset就可能周遊整個有序集合,這會增加O(N)的複雜度。

可選參數WITHSCORES會傳回元素和其分數,而不隻是元素。這個選項在redis2.0之後的版本都可用。

##區間及無限

min和max可以是-inf和+inf,這樣一來,你就可以在不知道有序集的最低和最高score值的情況下,使用ZRANGEBYSCORE這類指令。

預設情況下,區間的取值使用閉區間(小于等于或大于等于),你也可以通過給參數前增加(符号來使用可選的開區間(小于或大于)。

舉個例子:

傳回所有符合條件1 < score <= 5的成員;

傳回所有符合條件5 < score < 10 的成員。

##傳回值

array-reply: 指定分數範圍的元素清單(也可以傳回他們的分數)。

##例子

本文作者:陳群

本文來自雲栖社群合作夥伴rediscn,了解相關資訊可以關注redis.cn網站。