redis vs hazelcast

时间:2010-11-05 19:34:35

标签: redis hazelcast

Redis与Hazelcast 如果我的应用程序:

  • 有很多需要保存的http请求(每分钟6,000,我收集点击信息)
  • 有很多http请求查询以前保存的数据。

我的问题是 - 我应该选择在Re​​dis和Hazelcast之间存储和查询数据 - 哪一个读写更快? - 哪一个更可靠? - Cassandra可能是更好的选择吗?

回答任何问题有帮助

5 个答案:

答案 0 :(得分:22)

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

  • Protostuff + Hazelcast 对我们来说要比
  • 快得多
  • Protostuff + Jedis(pooled)+ Redis

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

  

Hazelcast看起来只有java库,Redis每种语言都有一个。

真。 Hazelcast只提供REST API和memcached协议的实现。

答案 1 :(得分:12)

有一个非常方便的lib - Redisson。它提供分布式Java对象和服务(BitSetBloomFilterSetSortedSetMapConcurrentMapListQueueDequeBlockingQueueBlockingDequeReadWriteLockSemaphoreLockAtomicLong,{{ Redis服务器之上的1}},CountDownLatchPublish / SubscribeRemoteServiceExecutorServiceLiveObjectService)!

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

完美适用于云并支持AWS Elasticache和Azure Redis Cloud

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

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

答案 2 :(得分:11)

截至2017年,Redis和Hazelcast都提供高可用性\可扩展密钥\值存储。响应时间非常快<为10ms。

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

Hazelcast的独特之处在于它可以嵌入到Java主机进程中,因此非常适合构建有状态的微服务而无需外部数据库依赖。它还有一些其他的小差异,例如从密钥到期时获得回叫的能力。从某种意义上说,它总体上做得较少,但它做的事情很少,它做得更好。特别是如果你正在使用Java。

总的来说,这些类似的解决方案专为类似用例而设计,例如缓存外部数据,为有状态微服务创建通信背板或共享内存状态,甚至可能存储(少量非关系)业务数据,具有一定程度的持久性

答案 3 :(得分:1)

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

根据这个benchmark如果你使用更多线程,Hazelcast比Redis更好。也许这是一个不公平的公司基准,但展示了一些线程。

答案 4 :(得分:0)

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

数目:

  1. 你必须自己测试一下,据我所知,不同的比较显示Redis更快one of them is here,但我不会说这些基准是100%

    < / LI>
  2. 他们应该是可靠的,但我不能保证Hazelcast。

  3. 也许......

  4. 我会选择Redis,因为我发现它是最实用的,并且它有很好的文档。