2016-08-30 61 views
1

我的應用程序需要一個鍵值存儲。以下是關於鍵值的一些細節:整數值大列表的鍵值存儲

1) Number of keys (data type: string) can either be 256, 1024 or 4096. 
2) Data type of values against each key is a list of integers. 
3) The list of integers (value) against each key can vary in size 
4) The largest size of the value can be around 10,000,000 integers 
5) Some keys might contain very small list of integers 

應用程序需要快速訪問指定鍵的整數列表。但是,這一步在應用程序的運行中並不常見。

我需要針對我的案例的最佳主要價值商店的建議。我需要快速檢索關鍵值,值大小可以在512 MB或更多。

我檢查了Redis,但它需要存儲在內存中。但是,在給定的情況下,我認爲我應該尋找基於磁盤的關鍵值存儲。

+1

見分貝排名位置:http://db-engines.com/en/ranking Redis的確實是一個很好的,你可以有集羣,複製和分片,, Redis的允許持久性,唯一的限制就是你的數據有適合內存 –

回答

0

LevelDB可以很好地適用您的用例,因爲您的密鑰數量有限(因爲您有足夠的磁盤空間滿足您的要求),並且可能不需要分佈式解決方案。你需要指定

的一件事是,如果(以及如何)要同時修改名單的數據庫,如性LevelDB和許多其他普通鑰匙-VAL店沒有這樣的原子事務。

如果你正在尋找一個分佈式數據庫,cassandra是很好的,因爲它也可以讓你插入/刪除單個列表元素。

+0

我讀了LevelDB可以存儲一個100字節的值,但在我的情況下,一個鍵將有超過10,000個值(整數)。有沒有什麼方法可以讓一個鍵支持這個數字的值對一個鍵? – Xara

+0

afaik,leveldb可以存儲任意大的鍵和值(但實際上它可能僅限於幾MB)。 –