是否有可嵌入的事务性java键值存储,允许您在不首先删除对象的情况下覆盖对象
我希望能够做到以下几点:是否有可嵌入的事务性java键值存储,允许您在不首先删除对象的情况下覆盖对象,java,nosql,key-value,Java,Nosql,Key Value,我希望能够做到以下几点: 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(
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分钟内写入500000个对象,每个对象少于1k
提前谢谢
汤姆汤姆:
Redis是你最好的选择。我已经广泛使用了它,它是一种数据结构服务器,不应与具有最终一致性的数据库服务器混淆。它在内存中,有一个备份文件存储,速度非常快。更多详情请访问redis.io。命令集位于,并且具有事务支持
支持多种语言。java客户机可在Try Scalien上使用,它具有java驱动程序、一致复制并支持ACID事务。 Redis和伏地魔都是关键/价值,如果我没记错的话,可以不加载就更新。你可能想看看我的评论,以防你不知道,我刚刚用Redis做了一个小的缓存数据库。