2012-10-12 43 views
0

我們有基於問題在哪裏主頁我們顯示2列表Redis的寶貴意見來選擇數據類型

  1. 問題通過修改日期
  2. 問題有較大的意見和ANS計數。在這兩個列表中,如果問題具有相同的意見或答案,則排序基於日期。

以前我直接向MySQL數據庫詢問並獲取值,所以很容易。 但是每個頁面請求觸及MySQL都有點貴,然後開始做緩存。

我開始使用Redis。以下是當我使用redis緩存的情況下

問題是在第二上市我必須顯示問題的投票,而不是回答結合。 如何在redis中存儲這種類型的數據以加快基於2個條件的排序加載時間和ans計數與時間?

回答

1

您可以在redis中使用排序集。您的觀點或答案數可以是得分。根據時間戳創建一個密鑰。排序集方法zrevrangebyscore會給你正確的順序。

你可以設置你的有序集合的成員爲:

'YEAR_MONTH_DATE_HOUR_MINUTE_SECONDS:question_id' 

這樣,如果你排序,以同樣的比分的問題,將在字典順序返回。如果您使用zrevrangebyscore,那麼稍後提出的問題將放在更高的位置。

您可以創建一個哈希映射來映射時間戳和question_id。爲更快的查找

我問了一個類似的問題,我也提出了一個解決方案。我想要不同的東西,但它會做你想要的。

Redis zrevrangebyscore, sorting other than lexicographical order

+0

謝謝,讓我試試這個。 –

+0

乾草它的作品感謝幫助redis是gr8。我需要探索更多的redis文檔。 –