我使用一個系統進行大量的批處理。我們有預加載的高速緩存來幫助提高數據查找性能。但是有些場景我不能將整個數據集緩存到內存中。到目前爲止,我已經恢復運行一個查詢來查找殺死性能的數據。爲了解決這個問題,我添加了一個混合緩存,其中我使用HashMap達到閾值,然後將其轉移到Lucene索引(本地文件系統)。與運行查詢相比,這是一個明顯的改進(比數據庫查詢快6到10倍)。然而,我希望有一點更好,並想知道是否有更好的選擇這種事情。我使用一個字符串作爲我的密鑰並且正在緩存Java對象。我想堅持一個Java庫,不會使我的部署複雜化。 (我想避免一個單獨的服務器進程。)我想知道是否有其他人使用Lucene來達到這個目的。有更好的選擇嗎?Lucene作爲高容量緩存?
1
A
回答
1
我認爲,如果您使用單個字符串作爲鍵並且不需要在存儲的數據中運行查詢,則可以使用Google的LevelDB。它具有良好的性能和低內存使用率。檢查此:http://code.google.com/p/leveldb/
1
有幾個緩存庫可用,應該能夠處理您的情況通過寫入緩存項到磁盤,如果達到一定的閾值。一個好的策略是將條目寫入租用訪問的磁盤。還有一些緩存將緩存條目分佈到集羣中,將所有內容都保存在內存中。
,我經常使用的高速緩存解決方案的Infinispan:http://www.jboss.org/infinispan
它是快速,易於使用,可擴展,當然可以處理你的問題。
1
EhCache!似乎很適合我需要的東西。對於這種單鍵查找,它比Lucene的表現要好得多。它支持磁盤溢出並且使用簡單。
相關問題
- 1. Lucene作爲數據存儲
- 2. 緩存容量規劃
- 3. Lucene如何緩存數據?
- 4. 提高代碼緩存容量沒有結束
- 5. 高速緩存跨越的作用,同時刷新CPU緩存
- 6. ASP.NET MVC 3高速緩存或不高速緩存動作策略
- 7. Lucene作爲memcached的後備存儲
- 8. 高速緩存乘法操作
- 9. 服務工作者高速緩存
- 10. TFS工作區高速緩存
- 11. 緩存系統容量與播放
- 12. 使用PHP + MySQL緩存大量內容
- 13. 緩存內容
- 14. 禁用高速緩存中的緩存
- 15. Apache反向高速緩存代理 - 爲什麼不高速緩存?
- 16. MySQL高速緩存
- 17. 行級高速緩存「指數作爲表」
- 18. Django的:超時使用Redis的作爲高速緩存
- 19. 緩存UIView對象作爲提高性能的一種方式
- 20. Redis作爲RDBMS的緩存
- 21. 緩存,避免緩存內容
- 22. Lucene似乎在緩存搜索結果 - 爲什麼?
- 23. ASP內容緩存
- 24. 緩存爲iphone FB的CSS內容APP
- 25. nginx無緩衝區高速緩存
- 26. SQLite持久性存儲作爲緩存
- 27. 瞭解REST:作爲高容量傳輸的REST?
- 28. C#高速緩存未顯示存儲在高速緩存中的原始值
- 29. Symfony2高速緩存問題
- 30. 高速緩存持久性
謝謝。我會檢查一下。 – kturner75 2012-02-07 16:50:52