用于计数器的java嵌入式键值数据存储

时间:2014-10-13 09:47:41

标签: java embedded-database key-value-store

我正在搜索

的嵌入式键值数据存储
  1. 拥有Java API
  2. 易于操作计数器(a.k.a. SET值=值+ 10 WHERE键=“k”)
  3. 支持多线程客户端
  4. 高性能
  5. 我找到了LevelDBJni,但它专为简单的K-V操作而设计,对计数器不友好。有更好的解决方案吗?

    感谢。

3 个答案:

答案 0 :(得分:0)

使用Java库,您可以使用Map作为值AtomicInteger

在以下示例中,我使用String作为密钥的数据类型。

E.g。

Map<String, AtomicInteger> kvStore = new ...

要操作计数器,您可以使用

kvStore.get("...").addAndGet(10);

还要检索更新后的值

AtomicInteger value = kvStore.get("...").addAndGet(10);

由于AtomicInteger是为并发而设计的,因此多线程环境应该没有问题。

我无法告诉你这是如何表现的,因为我不知道你的具体要求所以你必须自己确定。

答案 1 :(得分:0)

嵌入式Java DB count-db(https://github.com/koendeschacht/count-db)在其API中提供了一个increaseCount方法,该方法应该回答这个用例。

答案 2 :(得分:0)

看看http://www.mapdb.org。它性能非常高,并提供了一个非常熟悉的API(Java Map)。