我有一個應用程序在Ubuntu Linux 12.04上運行需要存儲和檢索大量的大型序列化對象。目前,商店是通過簡單地將序列化的流保存爲文件來實現的,其中文件名等於序列化對象的md5散列。不過,我想加快將文件存儲替換爲內存中緩存最近讀取/寫入的對象的速度,並且最好爲我做散列。memcached像磁盤持久化軟件
我的應用程序的設計不應該更復雜。因此,最好是以抽象和有效的方式管理鍵值數據庫和緩存的存儲後端。我有點迷失在那裏的所有關鍵/價值商店,而且很多主題/信息似乎已經過時。我最初正在尋找像memcached + membase這樣的東西,但也許有更好的解決方案。我看着redis,mongodb,couchdb,但是我不清楚它們是否適合我的需求。
我最重要的要求:
- 透明保存到持久性存儲的方式,最近讀/寫的對象是可迅速通過在內存中緩存自動它們。
- 存儲應該在重新啓動後存活。因此,在內存中,對象應儘快保存在磁盤上。
- 目前我正在手動計算md5。如果後端爲我做這件事,那實際上會更好。因此能夠在存儲對象時獲取散列鍵,並且能夠稍後使用散列鍵檢索對象。
- 更重要的是,如果有可用於Ubuntu 12.04的軟件包,無論是在Universe中還是通過啓動板或其他軟件。
- 除此之外,該軟件最好是光不能超過必要的複雜(我不需要分佈地圖,減少就業機會等)
感謝您的諮詢!
應用程序是將這些本地存儲到它運行的計算機,還是計劃與服務器通信以存儲這些對象?您列出的所有技術都是服務器位。要運行應用程序並在本地存儲,除了應用程序之外,還需要在本地安裝和運行服務器。 – 2012-07-15 19:24:02
操作系統在文件上進行內存中緩存,所以這個系統沒問題。 – 2012-07-15 23:14:04