在Redis中,如何取得所有小於x的成員? 做這個任務的時間複雜度是多少?Redis排序集,取得所有小於x的成員
回答
您可以使用ZRANGEBYSCORE redis命令。
例如
1) "one"
2) "two"
3) "three"
也爲得分大於4
ZRANGEBYSCORE myset 4 +inf
結果:
1) "five"
2) "six"
關於複雜性,由於有評分小於4
zadd myset 1 "one"
zadd myset 2 "two"
zadd myset 3 "three"
zadd myset 5 "five"
zadd myset 6 "six"
ZRANGEBYSCORE myset -inf 4
結果成員到我的Redis文檔S 0(日誌(N)+ M)
編輯: 第二個示例
比方說,我們有一個網絡遊戲,這是我們在Redis的有序集合存儲的記分牌。 下面的命令創建這個測試
zadd scoreboard 101 "John" 333 "Mary" 323 "Nick" 900 "Steve" 901 "Sam" 333 "Mike"
有資格進入下一輪的選手都與得分低於330要找到這些球員,我們運行以下命令的人。
ZRANGEBYSCORE scoreboard -inf 330
這將導致到2名球員(約翰和尼克)
1) "John"
2) "Nick"
爲了進一步解釋一下這個命令: ZRANGEBYSCORE:Redis的命令,查看文檔 記分牌:排序集我創建的 -inf:是我的命令的最低價格 330:我的命令的最高價格
它的作用是從-in找到此範圍內的所有成員有限爲330,我理解爲330以下的所有成員。
我希望我幫助:)
只有當我知道範圍時,該命令纔會有幫助。但在這種情況下,我不知道存儲在集合中的範圍。 –
在我的示例x = 4中,返回所有成員的分數爲4和更小的無限範圍(-inf)。 –
你能舉個最小值的例子嗎? –
- 1. Redis:多個排序集合中成員的分段有序zrank獲取
- 2. 獲取排序集中的所有成員
- 3. 是否有可能在排序集[Redis]中獲得相同分數的成員?
- 4. 成員取得所有權
- 5. Redis:獲取有排序集合的所有分數
- 6. Redis排序集
- 7. 基於從redis排序的集合排序Django查詢集
- 8. 得到一個Redis的hyperloglog的所有成員
- 9. 有沒有辦法在redis排序集上設置成員限制?
- 10. Redis排序集合
- 11. 呼籲所有成員集
- 12. Scala函數獲取大小爲k的所有排序子集
- 13. 獲取出現在多個redis排序集上的所有密鑰
- 14. redis排序集最高分
- 15. 重置Redis排序集
- 16. 從redis排序集合中檢索得分剛剛小於給定分數的最高值的排名
- 17. Redis命令獲取Redis集羣上的所有可用密鑰?
- 18. Redis - 如果集合中有超過x個成員,則刪除/彈出
- 19. 有沒有向Eclipse的「排序所有成員」添加排除的方法?
- 20. redis從集中刪除特定成員
- 21. 將redis排序集複製到集
- 22. 我如何才能得到所有成員下面的成員?
- 23. 有效的方法redis集成員更新
- 24. 如何增加redis排序集的值
- 25. Redis中的多個排序集合
- 26. Redis中的排序集vs散列?
- 27. redis中的哈希或排序集?
- 28. 威爾Redis的排序集規模?
- 29. 保留設置成員在Redis中排序
- 30. 獲得在DataContract所有數據成員
我可以建議你看一看精彩redis的文檔?它具有解釋,時間複雜性和所有命令的用例。請參閱[有序集](http://redis.io/commands/#sorted_set)。 –