Redis 和 Hazelcast – RadarGun 對二者的比較

MarSkaggs 8年前發布 | 16K 次閱讀 Redis Hazelcast NoSQL數據庫

自從2009年初始發布以來,Redis受到了巨大的歡迎并且成為擁有大型社區的部署數據存儲平臺之一。

雖然Radis有很令人難忘的特性,但是它也有一個嚴重的限制--它是為了單機模式設計的。如果用戶需要超過單機的能力,就需要使用專用分區系統。不過3.0.0版本發布了一種集群系統產品,可以從根本上簡化分布式Redis部署。

所有人都認可Radis很快,我們來看看Hazelcast和Redis的比較。這份報告是為了觀察Redis集群方案(v3.0.7)對比Hazelcast(v3.6.1)的表現, 特別是在重負荷的情況下。

為了確保我們在比較Hazelcaset和Redis時候擁有穩定的環境,我們選擇使用我們通常用于測試Hazelcast性能改進的室內測試實驗室。

實驗室配置

測試在由HP ProLiant DL380系列服務器構成的集群上進行。每一臺機器配置有雙socket Xeon E5-2687W v3@3.10Ghz, 每個CPU10核,超線程可用(一共有20個物理的,40個虛擬核),并且還有768G 2133Mhz的內存(24X32GB 模塊)。在操作系統方面,我們使用簡單的RHEL7安裝,這表示在測量中不會使用虛擬軟件。每臺機器使用一個40 GbE SolarFlare 網卡(Sloarflare SFN7142Q Dual Port 40 GbE)來做點對點的通信。

為了執行Redis 測試,我們決定小痾怒責Jedis做客戶端,因為它很流行(在github上有3481個星)并且對集群模式有非常好的支持度。

為了排除其他影響,我們決定雇傭Infinispan開發社區創建的第三方測量工具RadarGun。因為RadarGun不提供直接可用的Redis支持,我們需要自己集成。感興趣的人可以去github上獲取RadarGun fork和Redis插件。

我們需要什么

作為測試場景,我們想要基于客戶增長數和并發處理數據數來比較Hazelcast和Redis的表現。所有的測試都在測試環境的 4個節點集群上執行并觀察,4個基本測試場景需要被執行:

腳本  客戶端數 每個客戶端的進程數

1        1            1

2        4            8

3        4            32

4        4            64

正如上文所說,我們用以下版本來執行測試:

  • Hazelcast Version 3.6.1

  • Redis Version 3.0.7, Jedis 2.8.0

吞吐量

看一下吞吐量結果,Redis在少量客戶端和/或進程的情況下非常快,但是它在高并發負載下變得很慢。測量超過特定數量的線程會拖慢Redis內部結構的可擴展性。另一方面,Hazelcast在很小的負載情況下表現較差,但是在并發處理和高數量客戶端或線程開始被進入的時候,測量表現要遠高于Redis。

Redis 和 Hazelcast – RadarGun 對二者的比較

腳本  Hazelcast 結果(reqs/s)     Redis 結果(reqs/s)

1          13,954  50,634
2 365,792                     645,976
3 872,773 702,671
4 1,166,204 722,531

 

延遲性

根據結果,延遲性表現和并發性測試里有類似模式。Redis在低數據負載的時候響應比Hazelcast表現更好,而在數據負載和并發請求增加時則表現相反。在不常見的大環境(如我們在腳本4)我們可以看到Redis的平均響應時間劇烈的增長。Hazelcast響應時間雖然也隨著線程數增加而增長,但是這種增長要穩定得多,而且不像Redis表現的那樣是指數級。

Redis 和 Hazelcast – RadarGun 對二者的比較

                腳本                 Hazelcast (響應時間 μs)                   Redis (響應時間 μs)
                1                   70,14                       19,37
                2                   85,83                     48,98
                3                   144,7                     225,22
                4                   217,52                       640,51

結論

盡管在基準測試中的變量來自于測試的方法,調整設置,相對來說是一種常見的模式。Redis 在低用戶數量和低資源爭用連接情況下是一個好的選擇,而這個霸主地位將會被更多的負載集群所打破。

從這個結果來說,大量的 Redis 用戶不希望看到這個。他們真的有低量的數據負載系統,還是他們有另一種更好的方式呢?我們推薦開發者和架構師在使用任何技術之前,應該盡職預言并充分測試自己的用例。

一定要下載完整的基準( PDF 格式),并查看新的 Redis 為 Hazelcast 用戶對應的白皮書

來源:http://www.oschina.net/translate/redis-vs-hazelcast-radargun-puts-them-to-a-challenge

 本文由用戶 MarSkaggs 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!