1

我希望能够做这样的事情:

 db.createDbIfNotExists("/some/file");

 db.doInTransaction(new DbTransaction() {
     public void do() {

         for(KeyValue kv : listOfKvs) {
            ...some code that might fail...
            db.save(kv.getKey(), kv.getObject());
         }
     }  
 }

如果已经存在任何键,我希望新对象覆盖该键处的旧对象。我不想加载并删除它或加载并更新它。

如果在事务期间我的代码抛出异常,我希望写入回滚。

它需要能够在大约 2/3 分钟内写入 500,000 个小于 1k 的对象。

提前致谢。

汤姆

4

2 回答 2

0

试试 Scalien,它有 Java 驱动程序、一致地复制并支持 ACID 事务。 http://scalien.com/products/

于 2012-05-01T03:09:13.373 回答
0

汤姆:

Redis 是你最好的选择。我已经广泛使用它,它是一个具有最终一致性的数据结构服务器(不要与数据库服务器混淆)。它在内存中带有后备文件存储,并且速度非常快。更多细节请访问 redis.io。命令集位于http://redis.io/commands 也有事务支持 http://redis.io/topics/transactions

支持多种语言。Java 客户端可在https://github.com/xetorthio/jedis获得

于 2012-04-19T16:56:01.663 回答