Java 哪个keyvalue商店的性能最好?
我想是两个月前。我发现了一个google的开源项目,它可以存储高性能的键值对。但是我忘了名字。有人能告诉我吗?或者你可以给我一些其他的建议?我一直在使用BerkerlyDB,但我发现BerkerlyDB对于我的程序来说不够快。然而,berkerylyDB使用起来很方便,因为它看起来像一个java lib jar,可以与我的程序无缝集成。我的程序也是用Java编写的。我想你看到的是Google collections或Google collections。DHT(分布式哈希表)“市场”中两个强大的竞争对手:Java 哪个keyvalue商店的性能最好?,java,database,Java,Database,我想是两个月前。我发现了一个google的开源项目,它可以存储高性能的键值对。但是我忘了名字。有人能告诉我吗?或者你可以给我一些其他的建议?我一直在使用BerkerlyDB,但我发现BerkerlyDB对于我的程序来说不够快。然而,berkerylyDB使用起来很方便,因为它看起来像一个java lib jar,可以与我的程序无缝集成。我的程序也是用Java编写的。我想你看到的是Google collections或Google collections。DHT(分布式哈希表)“市场”中两个强大的
- (Facebook创建,Digg和Twitter使用)
(您可以搜索整个演示文稿,包括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磁盘结合使用,您会爱上它