2010-11-05 395 views
26

Redis的Vs的Hazelcast 如果我的应用程序:Redis的VS hazelcast

  • 有很多的HTTP请求(6000每分钟,我收集点击信息)需要被保存
  • 有很多的HTTP请求查询先前保存的数据。

我的问题是 - 我应该选择哪种Redis的和Hazelcast之间的一个存储和查询数据 - 哪一个是更快的读取和写入? - 哪一个更可靠? - 可能Cassandra是更好的选择?

回答任何问题,有助于

+3

你应该尝试更好地描述你的问题。您想要放入的数据,特别是您需要查询数据的方式。 – antirez 2010-11-05 21:24:01

+1

我打算放30米左右的键值。数据看起来像。 userid-Set。 set为该用户提供属性,大约为10.它将不断更新,并且会持续查询。我喜欢redis,因为它知道一个Set是什么,这是一个操作,但它不能缩放。 – Federico 2010-11-19 15:34:21

回答

0

双方的Redis和Hazelcast是基于内存的数据库,所以从理论上讲,他们应该提供相同的速度和性能。查看Hazelcast的文档,由于用于连接数据库的大量库,您将获得Redis更好的支持。 Hazelcast看起来像只有java库,Redis每种语言都有一个。

答案:

  1. 您必须测试这个你自己,只要我可以告诉不同的比较表明Redis的更快one of them is here,但我不会说这些基准是100%

  2. 他们应该是可靠的,但我不能担保Hazelcast。

  3. 也许......

我会去与Redis的,因为我觉得这是最实用,它有很大的文档。

+10

该基准测试比较Redis和memcached,而不是Hazelcast。 – nilskp 2013-03-06 16:10:17

18

为了满足我们的缓存需求,我们从redis切换到了hazelcast。

  • Protostuff + Hazelcast 对我们来说是远远快于
  • Protostuff + Jedis(池)+ Redis的

我们使用protostuff连载豆是昂贵创建。 Hazelcasts标准序列化机制要慢得多。我们的环境是Glassfish 3.1。

Hazelcast看起来像他们只有java libs,Redis每种语言都有一个。

是的。 Hazelcast只提供一个REST API和一个memcached协议的实现。

10

有一个非常方便的LIB - Redisson。它提供了分布式Java对象和服务(BitSetBloomFilterSetSortedSetMapConcurrentMapListQueueDequeBlockingQueueBlockingDequeReadWriteLockSemaphoreLockAtomicLongCountDownLatchPublish/SubscribeRemoteServiceExecutorServiceLiveObjectServiceScheduledExecutorService)在Redis服务器之上!

它支持群集,标记,主/从和单连接模式。

完美的作品在云和支持AWS Elasticache和Azure的Redis的云

以下是Redisson客户的一些成功案例:

Moving from Hazelcast to Redis
Distributed Locking with Redis (Migration from Hazelcast)

9

截至2017年,两者的Redis和Hazelcast报价高可用性\可扩展键\值存储。具有非常快的响应时间< 10ms。

Redis的独特之处在于它支持其他数据结构,如存储集合,哈希集合和pub \ sub机制。它也可以通过lua脚本进行扩展。它可能是这两种产品中最受欢迎和广泛使用的。特别是在Java生态系统之外。

Hazelcast的独特之处在于它可以嵌入到Java宿主进程中,因此非常适合构建有状态的微服务,而无需外部数据库依赖。它还有一些其他的细微差别,比如从关键到期时获得回拨的能力。从某种意义上说,它的整体表现较差,但它所做的几件事情却让它们变得更好。特别是如果你使用Java。

总的来说,这些解决方案都是类似的解决方案,设计用于缓存外部数据,为有状态的微服务创建通信背板或共享内存状态,甚至可能存储(少量非关系)业务数据耐久性。

+0

不同意你的意见。 Redis规模配置花了一个小时左右的时间并没有花费太多时间。例如,如果使用Redisson,则不需要Twemproxy。它为您解决了任何连接平衡问题。 – 2015-09-18 13:48:17

+2

我同意,随着Redis集群的RC和Redis的新SaaS托管服务的出现,在将Redis扩展为多个水平负载均衡实例后,格局发生了变化,因为我写了这个实例。 – Eric 2015-10-12 17:34:39

+0

@Eric然后请编辑或删除您的答案。 – 2017-09-20 08:31:28

1

要确定哪一个是好的,存在关于客户端线程使用的问题。

根据此benchmark如果您使用更多线程,Hazelcast比Redis更好。也许这是一个不公平的公司基准,但显示了关于线程的一些东西。

+0

我很感激任何反馈或批评,我可以从中学习或使用它来帮助我改进我的答案。所以,请在评论答案时留下评论... – Fsr 2016-11-15 10:26:48

+0

我不会相信这样的基准。首先,它没有提供关于Redis集群的任何信息,主要部分包括主/从节点的数量。例如,Redis集群写操作的规模取决于主节点数量与读操作相同。这是另一个基准,它显示Redis集群的每秒120万次操作系统http://highscalability.com/blog/2014/8/27/the-12m-opssec-redis-cloud-cluster-single-server-unbenchmark.html – 2016-11-25 18:40:27

+1

我认为你大多因为人们在寻求对不同产品的独立和中立评价而感到低落,而你只是将Hazelcast的博客链接起来,即使他们试图保持中立,博客仍然可能存在偏见,因为他们会创建一个测试适合他们的产品。此外,stackoverflow更喜欢你引用相关信息以及提供链接,以防链接停止工作。 – MichaelRom 2017-01-23 12:52:57