Hazelcast与Redis(或RedisLabs)的NodeJS应用程序

时间:2016-04-18 09:34:22

标签: node.js redis hazelcast redislabs

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

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

据我所知,在基准测试中,由于多线程实现,Hazelcast的速度更快,而且可扩展性也很快。但是我们能否使用NodeJS有效利用这些优秀的功能(需要设置数据结构)?最后,我们可以在RedisLabs中有多个分片,就像多个线程或进程在各自的数据块上工作一样,在这种情况下,我认为Hazelcast由于多线程特性而对Redis来说是正确的,但对于RedisLabs则不然,这有什么意见吗?

2 个答案:

答案 0 :(得分:5)

Hazelcast Node.js client实际上确实存在,目前提供以下功能

  • Open Client Binary Protocol的实施,Redis使用基于文本的协议
  • 地图
    • 获取
    • 删除
  • 智能客户端 - 客户端连接到每个群集节点。 由于每个数据分区都使用众所周知的一致性哈希算法每个客户端可以向相关群集节点发送操作,这会增加整体吞吐量和效率。如果在群集中添加或删除节点,则无需重新启动客户端。
  • 分布式对象侦听器
  • 生命周期服务

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

谢谢

答案 1 :(得分:2)

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

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

如果你只是使用缓存作为键值存储Redis是好的,快速的,免费的!它可以处理大量数据以及一些额外的设置看看 http://redis.io/topics/partitioning

在支持定价方面,RedisLabs的成本更低,如果您使用Redis Redisson,它可以为您提供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 ,调度程序服务

RedisLabs拥有更多的用户群+贡献者,如果你是comapre用户,HazelCast会少一些,所以如果你的数据只是2TB,那么它只是键值.. Redis是最好的