我需要一個關鍵值存儲的建議。這裏是我的準則:Ruby和Java的鍵值存儲
- 不必是持久的,但需要支持大量的記錄(記錄是小,100-1000字節)
- 插入(
put
)將在大型數據集只是偶爾發生,總是(散裝) Get
將是隨機的,並且需要快速- 客戶端將在Ruby和,也許Java的
- 它應該是比較容易安裝和使用需要儘可能 少維護
我需要一個關鍵值存儲的建議。這裏是我的準則:Ruby和Java的鍵值存儲
put
)將在大型數據集只是偶爾發生,總是(散裝)Get
將是隨機的,並且需要快速AVL-Tree會在插入,刪除,搜索和其他所有內容時給你O(log n)。
我很確定有一堆可靠和經過驗證的解決方案,我不是真的在重新發明自己的車輪。 – 2011-06-08 14:08:10
我想我誤解了你所要求的一點。抱歉。 – 2011-06-09 16:57:04
1和3都在尖叫數據庫引擎。
如果你的記錄數量不是瘋狂的,而你只有一個客戶端同時使用這個東西,我個人推薦sqlite,它可以與Java和Ruby一起工作(也可以通過#5)。否則,請使用真正的數據庫系統,例如MySql(因爲您不在Microsoft堆棧中)。
1和3都得到流行的nosql解決方案的很好的支持,不知道爲什麼RDBMS會更適合。此外,記錄數量相當大(百萬),並且還會有併發讀取。 – 2011-06-08 14:06:12
Aerospike將是一個完美的,因爲以下原因:基於在Java和Ruby提供客戶
關於它如何處理批量插入的任何經驗(例如,插入數百萬條記錄時我能夠查詢它)? – 2011-06-08 14:25:49
你一定能夠在插入時進行查詢 - 一切都在內存中,所以沒有磁盤抖動。它還具有流水線(http:// redis。io/topics/pipelining),這意味着您可以在不等待每個單獨的結果返回的情況下通過批量插入進行流式處理 – 2011-06-08 14:27:30
只需使用Redis與一些真實數據一起玩即可。性能非常好,我們迄今爲止唯一遇到的問題是偶爾會崩潰,這在內存耗盡時似乎正在發生。我們可能需要使用Redis和盒子設置。 – 2011-06-09 18:11:27