1

我有一个应用程序有超过 2 TB 的数据要存储在缓存中,这些数据将使用 NodeJS API 访问。对于 NodeJS 应用程序,Hazelcast 或 Redis(或 RedisLabs)会是更好的选择吗?考虑以下标准?

  • NodeJS API 支持,包括连接池。看起来 HazelCast 没有 NodeJS API

我知道,由于多线程实现,Hazelcast 的基准测试速度更快,而且它的可扩展性也是如此。但是我们可以使用 NodeJS(需要 Set 数据结构)有效地利用这些好的特性吗?最后,我们可以在 RedisLabs 中拥有多个分片,这就像让多个线程或进程在各自的数据块上工作一样,在这种情况下,我相信由于多线程性质而导致的 Hazelcast 优势对于 Redis 来说是正确的,但对于 RedisLabs 则不然,对此有何评论?

4

2 回答 2

5

Hazelcast Node.js 客户端确实存在,目前提供以下功能

  • Open Client Binary Protocol的实现,Redis 使用基于文本的协议
  • 地图
    • 得到
    • 消除
  • 智能客户端 - 客户端连接到每个集群节点。由于每个数据分区都使用众所周知的一致哈希算法每个客户端都可以向相关集群节点发送操作,从而提高整体吞吐量和效率。在集群中添加或删除节点时不需要重新启动客户端。
  • 分布式对象监听器
  • 生命周期服务

在比较 Hazelcast 和 Redis 服务器端功能方面,您可以在此处找到全面的文档。

谢谢

于 2016-04-18T12:59:09.307 回答
3

好吧,我建议如果您使用非常复杂的数据处理/处理,您应该使用 HazelCast,并且 nodejs 本质上是单线程的,所以如果您只是使用它来存储键值,请不要使用它。

您可以使用官方 API (NodeJS + hazelcast),但功能非常有限,仅使用 KeyVal

如果您只是将缓存用作键值存储 Redis 很好、快速、免费!它还可以通过一些额外的设置来处理大量数据,请查看 http://redis.io/topics/partitioning

在支持定价方面,RedisLabs 的成本更低,如果您将Redisson与 Redis 一起使用,它可以为您提供 Hazelcast 使用的所有数据结构:)

BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish/Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service

RedisLabs 拥有更多的用户群 + 贡献者,如果您比较用户,HazelCast 会少一点,所以如果您的数据是 2TB,如果它只是键值.. Redis 是最好的

于 2016-04-18T09:43:17.103 回答