Redis系列(五):你要的 Redis 集羣搭建來了,實踐與否你自己選!

  

作者:z小趙

★ 

一枚用心堅持寫原創的“無趣”程序猿,在自身受益的同時也讓朋友們在技術上有所提升。

前言

上篇文章我們介紹了 Redis 集羣的工作原理機制,本文我們就來手動搭建一個 Redis 集羣玩玩。強烈建議大家在開始本篇文章之前先看看上篇文章的介紹,這樣對集羣的安裝會更加清楚一些。Redis 集羣工作原理

環境及版本說明

  • 環境:MacOS 10.14.6

  • Redis 版本:Redis-4.0.10

最終目標

  • 集羣最終會有 6 個節點,3 主 3 從

  • 7000 - 7002 三個節點爲主節點

  • 7003 - 7003 三個節點爲從節點

  • 7000 對應的從節點爲 7003,7001 對應的從節點爲 7004, 7002 對應的從節點爲 7005。

集羣搭建及驗證

  1. 創建一個目錄,並在該目錄下創建 6 個子文件夾,用於存放集羣文件。


  1. 修改減壓好的 Redis 的 redis.conf 文件


  1. copy Redis 減壓好的目錄到 6 個節點下,並在每個節點下修改端口號,然後啓動,以節點 1 爲例

6 個節點正常啓動後,應該可以看到如下圖所示效果。

到此,我們要組建集羣的 6 個節點已經全部完成啓動,接下來我們要做三件事,第一件事就是把這些節點全部連接起來(爲什麼要將節點連接起來及建連發生的事情,參看上篇文章:Redis 集羣工作原理),第二件事情是將 16384 個槽分配給其中三個主節點,第三件事就是把其中一部分節點的身份改成從節點身份(因爲默認啓動起來的節點的身份都是主節點)


  1. 將啓動的各個節點進行連接操作,我們這裏在節點 1 上操作


  1. 分配槽,我們這裏選擇端口爲 7000、7001、7002 的節點作爲主節點,7003、7004、7005 爲叢節點

注意: 這裏不能通過 redis-cli 登錄上去執行,否則會報如下錯誤:

槽分配完成以後,正常情況下我們可以看到如下圖所示的信息,從信息中我們可以看出 cluster_state:ok,該信息表示 Redis 集羣現在已經可以正常工作了。

我們在來看看剛剛槽分配的情況,執行一下命令查看,通過截圖可以看出,16384 個槽按照預期被分配到了 7001、7002、7003 端口對應的節點上了。


  1. 到此,整個集羣的主節點已經全部配置好了,並且集羣的工作狀態也是 ok 的,接下來將 7003、7004、7005 三個端口對應的節點的身份變成從節點。我們將 7003 節點作爲 7000 節點的從節點,7004 節點作爲 7001 節點的從節點,7005 節點作爲 7002 節點的從節點。執行如下命令:

執行完以上節點命令後,我們在來看看當前集羣的狀態,如下圖所示:

此時我們可以看到,如預期所示,7000 - 7002 三個節點的身份爲主節點,7003 - 7005 三個節點的身份爲從節點。

到此我們的集羣搭建也就基本問完成了,簡單吧,下面我們來看看上篇文章提到的轉向到底是怎麼回事。

執行如下命令,出現Moved錯誤,我們也可以在以執行src/redic-cli -h 127.0.0.1 -p 7000 -c 登錄,這時候會直接重定向到目標節點執行。

總結

到此,我們通過實踐的方式驗證了我們上篇文章得出的結論,後續文章我們也儘量以這種方式來進行論證。

好了本篇文章到這裏基本上又要說拜拜了,朋友們在自己搭建集羣的過程中遇到任何問題,都可以通過下面二維碼聯繫到我。我們下篇文章再見,拜拜。

系統研發工程師、z小趙
高併發設計 | 大數據 | 架構設計

往期推薦

Redis系列(三):緩存過期該如何剔除?RDB和AOF又是什麼?

Redis系列(二): 連集合底層實現原理都不知道,你敢說Redis用的很溜? 

Kafka:你必須要知道集羣內部工作原理的一些事!

消息是如何在服務端存儲與讀取的,你真的知道嗎? 

一文讀懂消費者背後的那點"貓膩"

感謝您的【點贊】【轉發】支持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章