我在尋找可處理大數據的內存緩存解決方案(< 5GB)。對於用戶輸入的搜索詞,數據庫(elasticsearch)將返回大量的數據,工具將通過該工具的不同網頁分析和顯示大量數據。現在我的問題是,我想暫時緩存這些大數據,直到用戶會話結束,這樣每次用戶打開一個新頁面時,我都不必從elasticsearch再次獲取它。它將不得不在內存中,因爲基於磁盤將花費一分鐘,這將非常緩慢。緩存內存中的大量數據
我最初認爲memcached,但它的最大限制爲128MB。閱讀了很多後,Redis看起來很合適,但是我不清楚一堆Redis節點是否可以協同工作。是否可以建立多個Redis節點池,以便在SET
和GET
上自動選擇合適的節點,而無需我指定節點?
TL; DR
- 問題:在內存中緩存緩存大數據(< 5GB)
- 可能的解決方案:Redis的
- 問題:我能彙集一堆Redis節點,這樣我就可以在沒有指定特定節點的情況下獲取存儲在其中任何一箇中的密鑰。我不需要分發我的數據,因爲單個用戶的數據將適合單個節點的RAM。
確保您沒有過度優化。 5 GB聽起來像很多數據,但除非是每個用戶,否則其實並不多。 Elasticsearch'filter'結果在默認情況下被緩存(有些例外,如腳本和地理操作),因此後續搜索應該很快返回(除1.4中有少數例外情況外,不會對緩存查詢進行緩存)。 – pickypg 2014-11-24 02:47:45
Yup 5GB是每個用戶。但由於它是一個B2B工具,用戶數量有限。此外,如果用戶數量增加,我可以添加更多的節點,因爲單個用戶的數據仍然適合單個節點的RAM。在elasticsearch中,我使用掃描和滾動,其中的結果,我假設沒有緩存? – huhahihi 2014-11-24 09:13:32