我期待存儲以下信息組。我存儲了一分鐘的時間戳(例如,在1分鐘窗口中看到所有的瀏覽器ID),然後存儲瀏覽器引用列表。我希望只能有一個瀏覽器ID實例Redis中的最佳存儲結構
Redis中的哪些數據結構可以用於此數據結構?有沒有更好的方法來存儲它?
...
12:06 -> browser1, browser7
12:07 -> browser8
12:08 -> browser4, browser5, browser6, browser9
...
每行可以有約1天的生存時間。
當添加新的瀏覽器ID時,我首先檢查瀏覽器ID是否已經存在於數據中某處,如果這樣刪除並添加到新的分鐘行。
最後每隔1分鐘我從30分鐘前取出一行並處理這些瀏覽器ID,然後在完全處理時從列表中刪除該行。
在任何時候,此數據結構中可能有多達1百萬個瀏覽器引用。
任何時候都可能有多達100萬個瀏覽器。因此我按照他們的方式分組數據。這個想法是,當我拉查詢來讓所有在某一特定時間內處於活動狀態的人都快速返回瀏覽器ID列表時。 – 2013-03-11 10:19:40
我認爲你應該將所有瀏覽器存儲在散列表中,以加速查詢,因爲你的瀏覽器太大。 O(1)很棒。 – kaitian521 2013-03-11 10:32:08
我已經更新了問題,以刪除客戶端ID的概念,使其更清晰。所以根據上面的變化,redis存儲集是最適用的。如果我需要多個數據結構,那也不錯。 – 2013-03-11 14:09:05