2013-03-04 99 views
5

我正在尋找一個持久性鍵值存儲在我的應用程序中使用。具體來說:嵌入式Java關鍵值存儲

  1. 它必須嵌入到Java應用程序中。純Java解決方案將是最好的。
  2. 數據必須保存在磁盤上,僅限內存的存儲不是選項。內存佔用大小很重要,鍵值映射的整體大小可能相當大。理想情況下,我希望在存儲上實現某種LRU緩存。
  3. 兩個鍵&值是字符串(不需要支持Java對象序列化等)。
  4. 併發讀取/寫入很重要。

這種情況下最好的選擇是什麼?

+0

[鍵值存儲建議]的可能重複(http://stackoverflow.com/questions/6639080/key-value-store-suggestion) – 2015-07-23 08:57:45

+0

還有另一種方法,如果它有幫助,使用TayzGrid作爲[java密鑰值存儲](http://blogs.tayzgrid.com/using-an-in-memory-key-value-store-to-scale-java-apps/)並定期轉儲緩存數據 – 2015-09-08 12:42:45

回答

2

我會使用SQLite(SQLite)。它是一個像文件存儲這樣的關係數據庫,它可以讓你存儲鍵值和其他你可能需要的東西。它佔地面積非常小,速度非常快。

由於所有這些原因,它在Android應用程序中非常常見。

3

我不知道這是最好的,但Hazelcast有這些選項。您可以使用磁盤上的備份將數據存儲在內存中。榛樹上有一個example

3

當我們必須支持大數據時,我們必須替換正常的HashMap,我使用Voldemort。表現真的很棒。

值= store.get(鍵)

store.put(鍵,值)

store.delete(鍵)

在接下來奧珀蒂尼蒂嘗試鍵 - 價值商店,我將很有可能嘗試Redis