2010-11-05 397 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