gpt4 book ai didi

java - 从同一台机器访问最快的 NoSql 数据库是哪个?

转载 作者:IT王子 更新时间:2023-10-29 06:03:25 25 4
gpt4 key购买 nike

在我的用例中,数据相对较小(~1000.000 个字符串),但我必须从多线程环境(在纯 Java 中实现)中尽可能快地访问(每一纳秒都很重要)目前我正在使用 redis(在本地主机中),我基本上对它很满意,但我想知道是否有更好的选择,因为 redis 拥有所有网络的东西,而且不是设计的对于多线程的东西。对于我的用例,持久性的优先级也很低。

  • 我想在同一台机器上运行(完全没有网络)
  • 我想尽可能快
  • Relativity 小数据(我目前的 Redis 实例内存最大约 20MB)

我不想:

  • 使用 NoSql 数据库以外的其他解决方案。

最佳答案

有很多很棒的 NoSQL 数据库可以用作键值存储。每个人都有独特的能力。

Redis 在单个服务器中表现出色,并且非常容易安装和使用。但是,当您的数据增长超出单个服务器时,Redis 变得难以分片和管理。

Thumbtack Technologies(纽约市)发布了两份白皮书,比较了 MongoDB、Cassandra 和 Aerospike 的性能和可靠性。这些论文非常客观,基准测试是使用 YCSB 基准测试工具完成的,并且是在相同的硬件上进行的。

使用哪一个取决于您的需要。MongoDB 是一个功能丰富的键值存储,具有许多不错的程序员功能。它提供对二级索引的查询,是一个非常好的文档存储。它是一个内存数据库,因此您的所有数据都必须适合 RAM。 Mongo 可以集群,我听说如果集群很大,管理起来会很棘手。

CouchBase 非常适合存储大量数据,其中一部分数据缓存在 RAM 中。因此,如果您所追求的值在缓存工作集中,它会非常快。如果您的用例主要处理热数据并且访问冷数据的频率较低,那么这很好。

Cassandra 非常适合“重写”用例。它易于使用,是一种很好的程序员体验。它是用 Java 编写的,在执行 GC 时会定期暂停,因此您需要调整 GC 参数。

Aerospike 适用于在少量服务器中存储大量数据。它拥有个位数毫秒(或更好)的延迟、高可用性和高可靠性,而且它可能是(恕我直言)最容易维护和扩展的。它是多代码感知、NUMA 节点感知并具有 self 修复的零接触集群技术。它非常适合需要快速且可预测地访问任何记录的“实时”用例。 Aerospike 是我的最爱。

Cassandra、CouchBase、MongoDB 和 Aerospike 都具有“分析”功能,您选择哪一个取决于用例和您的性能范围。

关于java - 从同一台机器访问最快的 NoSql 数据库是哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com