Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个keyvalue商店的性能最好?_Java_Database - Fatal编程技术网

Java 哪个keyvalue商店的性能最好?

Java 哪个keyvalue商店的性能最好?,java,database,Java,Database,我想是两个月前。我发现了一个google的开源项目,它可以存储高性能的键值对。但是我忘了名字。有人能告诉我吗?或者你可以给我一些其他的建议?我一直在使用BerkerlyDB,但我发现BerkerlyDB对于我的程序来说不够快。然而,berkerylyDB使用起来很方便,因为它看起来像一个java lib jar,可以与我的程序无缝集成。我的程序也是用Java编写的。我想你看到的是Google collections或Google collections。DHT(分布式哈希表)“市场”中两个强大的

我想是两个月前。我发现了一个google的开源项目,它可以存储高性能的键值对。但是我忘了名字。有人能告诉我吗?或者你可以给我一些其他的建议?我一直在使用BerkerlyDB,但我发现BerkerlyDB对于我的程序来说不够快。然而,berkerylyDB使用起来很方便,因为它看起来像一个java lib jar,可以与我的程序无缝集成。我的程序也是用Java编写的。

我想你看到的是Google collections或Google collections。

DHT(分布式哈希表)“市场”中两个强大的竞争对手:

  • (Facebook创建,Digg和Twitter使用)
这是一个关于卡桑德拉的演讲。在幻灯片20中,您将看到一些速度基准-0.12毫秒/写入
(您可以搜索整个演示文稿,包括Eric Evans talking)

Redis


也许你应该描述一下你需要什么功能。如果不需要分发(是吗?),那么我会尝试使用。对于那些认为“它不可能很快,因为它使用的是SQL”的人,请注意,当使用prepared语句时,SQL解析只执行一次。免责声明:我是H2的主要作者。

许多答案似乎自动假定需要分发;但若问题涉及BDB,那个么这似乎很奇怪

考虑到这一点,除了ReDIS和H2(两者都是好的)之外,还需要考虑,这似乎比BDB提供了好处。还有一个更新的可能性是。

没有人提及,但在搜索“好的键值存储”时,这篇文章位于顶部。根据我的经验,Leveldb简直太棒了。太快了,我简直不敢相信。 为了完成一项任务,我尝试了很多数据库。我试过:

  • windows azure表存储(价格昂贵,值大小最大为1 Mb,每个属性大小最大为64 Kb)
  • redis(如果你有尽可能多的内存,那就太棒了)
  • mongodb(只要有足够的内存就棒极了,在这一点之后就会中断)
  • sql server(价格昂贵,需要维护,如重建索引,最终仍然不够快)
  • sqlite(免费,但没有leveldb那么简单,速度也不快)
  • leveldb。如果您可以将您的工作建模为通过迭代器读取大量连续数据块,那么您将获得很高的速度。写作也很快。将其与ssd磁盘结合使用,您会爱上它

我认为伏地魔计划值得一看。即使Redis回答了以下问题:)您也需要通过网络连接访问Redis,对吗?这是否足够快?google collections是否支持将数据持久化到磁盘?或者只保留在内存中?您需要通过网络连接访问它们,对吗?这是否足够快?如果您在本地使用它们,则不需要网络连接。卡桑德拉写得非常快。谢谢。我想知道单台机器/单进程用例的“极快”到底有多快。你知道任何数字或基准测试结果吗?Cassandra和HBase是否针对这种情况进行了优化,它们是否针对这种使用情况进行了优化?从我所读到的内容来看,它们都是专门为分发而制作的。@Thomas Mueller-是的,我在Eric Evans的一次演示中看到了一些基准测试。一旦我找到它,我会把它包括在答案中。好奇你为什么提到Azure表存储如此昂贵?1亿笔交易约为10美元(折扣前)。如果批处理查询,它将计为一个事务。理论上,你可以写下每个人在美国的社会保险号码,然后在交易中以不到1美元的价格读回来(使用批处理)。存储成本也差不多。@Bartchzernicki我想有两个原因:1)我确实有很多事务(部分是由于将数据拆分为小于1MB的块而增加的),而且我没有使用批处理(不记得为什么)。2) 由于我使用了表存储,所以我还将其托管在azure虚拟机上(以便数据通过本地intranet传输),如果我没记错的话,每个小实例每月86美元。无论如何,相对于其他选项来说,它是“昂贵”的,而且通常可能没有那么昂贵,特别是如果进行了优化(如批量等)