2015-05-09 41 views
5

我正在嘗試創建一個redis ordered set。問題在於需要根據兩個標準,時間戳和分數來完成排序。但是在redis中,我只能提供一條評分標準:根據多個條件有序地在Redis中設置

ZADD {key} {timestamp} {value} 

如何在此順序中添加分數以及plz?

更新: 這是我所採取的兩種不同的排序融通合併成一個單一的浮動得分值的方法:

var score = Math.floor(result.created_time/(60*60*24*1000)); 
score = score + (result.matches/10); 

只是爲了說明,我第一次轉換的時間戳來的數天。而我的'比賽'價值通常是0-10。因此,轉換爲十進制值並添加爲分數權重。這給了我最高得分的條目,每天排序。這正是我需要的。

回答

4

在您的Sorted Set中使用小數作爲分數 - 構造分數,時間戳是小數點左側的值和右側的值。

+0

感謝您的線索。這種幫助我爲我製作了一個通用的分數。我正在用我採取的方法更新我的問題。 – Rana

+0

非常酷:)順便說一句,這個技巧絕對是Redis IMO中最簡單,最有效和經常被忽視的技巧之一 –