2013-10-31 40 views
0

現在我擁有大約1億個屬於多個類別的帖子,現在我正在嘗試使用redis存儲帖子數量和下載次數。如何使用redis存儲帖子查看次數和下載次數

但我不知道哪些數據結構,我應該用它來滿足我的要求:

  1. 我想查看次數或下載次數

  2. 我得到一個user`s職位順序想觀看次數或下載次數獲得一個category`s職位順序

我認爲一個數據結構不能滿足我的request.So什麼`最好prictise?

謝謝:)

回答

2

我想查看次數或下載次數

你需要每個用戶兩個排序組得到一個user`s職位順序。一個用於查看帖子,一個用於下載帖子。

我想通過觀看次數或下載一個category`s職位順序計數

同樣的事情。每個類別保留兩個有序集合。一個用於觀看,一個用於下載。

這就是說,爲什麼你需要使用Redis的呢?是否絕對必要(請閱讀:您是否需要如此高的速度/吞吐量)才能將所有這些信息存儲在Redis的內存中?考慮將其存儲在像Mongo這樣的內存+磁盤數據存儲中,並使用Redis來緩存最佳結果。同樣,這完全取決於您的需求,但我的猜測是您並不需要在Redis中保留很少訪問用戶或類別的底部。內存很貴。

+0

但是有很多分類和一個帖子可能屬於很多categorys.I不知道如何更新數據時,查看帖子):如果每個類別有兩個排序集合數據將會更大。 – Felix

+0

@Felix使用ZADD命令的管道爲每個需要更新的東西執行更新。我同意數據會很大。這就是爲什麼我不認爲你應該使用Redis,除非你真的需要。 – Eli