在滴滴雲上搭建 Redis-Cluster 叢集

java06051515發表於2018-12-26

Redis-Cluster 簡介

  官方在 3.0 版本以後推出了    叢集版,該版本能夠解決單機版 Redis 無法水平伸縮的問題,並提供去中心化、高可用的 Redis 叢集服務的能力。

Redis-Custer 主要提供以下功能:

  • 資料自動分片的能力

  • 當叢集部分節點故障或者無法與其它節點通訊的情況下,叢集整體能夠正常提供服務的能力

本文將主要介紹在 滴滴雲 伺服器上搭建 Redis-Cluster 的方法。

叢集配置

  • 1核 1G 雲伺服器,搭配 40G 系統盤 + 20G 資料雲盤 * 3 臺(此為測試使用的最小叢集規模。生產環境下,建議叢集整體最小核數>=叢集例項數,單個 Redis 例項記憶體建議不超過 8G)

  • 作業系統:Linux CentOS 7.4

  • 建議將 Redis 持久化檔案及日誌檔案掛載到 SSD 雲盤中,以避免物理磁碟損壞的情況下 Redis 資料丟失

叢集主從規劃

Redis-Cluster 的每個例項支援一主多從。在生產環境下,一般給每個例項配置一主一從,並將每個主從分散到不同的主機上,這樣可以最大程度避免單點故障對叢集造成的影響。

以下是我們在3臺主機的情況下,配置 3 主 3 從的叢集規劃:

  1. server1:7000(主)-> server2:7004(從)

  2. server2:7001(主)-> server3:7005(從)

  3. server3:7002(主)-> server1:7003(從)

下文中  server1 server2 server3  指代每臺雲主機的內網 IP。

叢集安裝

下載並安裝 Redis 預設版本

(如需指定版本安裝,可以從   官網下載)

  sudo  yum  install  redis   - y

下載並安裝 Redis 叢集管理工具 Redis-trib

Redis-trib 是 Redis 官方提供的 Redis 叢集管理工具,它可以提供建立叢集、增加節點、資料遷移等功能。

sudo  yum  install  redis - trib   - y

最佳化系統引數

目錄規劃

我們將 Redis 的配置檔案和資料檔案放到提前掛載好的 EBS 雲盤中去(雲盤掛載方式請參考 ),以保障資料的高可靠性。本文中雲盤掛載到 /data 目錄下。

透過  mkdir  命令,分別在三臺雲主機上建立以下目錄:

製作叢集配置模板

先製作一個 redis.conf 的叢集模板,然後只要根據不同 IP、埠替換模板即可得到每個 Redis 例項的配置檔案:

注意:bind 一行我們強烈建議不要繫結外網 IP,只繫結內網 IP,否則會有安全風險。

生成實際配置

生成每個例項的 redis.conf 實際配置:

將每個 Redis 例項的配置進行替換:

叢集啟動

啟動每個 Redis-server 例項

建立叢集

為了避免主節點和從節點分配在同一臺機器上,我們需要先把主節點組成一個叢集,再用不同機器的例項作為從節點掛載主節點:

總結

我們在 滴滴雲 環境上,安裝了 Redis 例項,並對每臺雲主機進行了系統引數最佳化;透過統一的模板進行 Redis 例項配置;並在主從打散的前提下,成功建立了 3 主 3 從的 Redis 叢集;最後對叢集每個例項進行的讀寫效能測試。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2285444/,如需轉載,請註明出處,否則將追究法律責任。

相關文章