作者: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。
集羣搭建及驗證
創建一個目錄,並在該目錄下創建 6 個子文件夾,用於存放集羣文件。
修改減壓好的 Redis 的 redis.conf 文件
copy Redis 減壓好的目錄到 6 個節點下,並在每個節點下修改端口號,然後啓動,以節點 1 爲例
6 個節點正常啓動後,應該可以看到如下圖所示效果。
到此,我們要組建集羣的 6 個節點已經全部完成啓動,接下來我們要做三件事,第一件事就是把這些節點全部連接起來(爲什麼要將節點連接起來及建連發生的事情,參看上篇文章:Redis 集羣工作原理),第二件事情是將 16384 個槽分配給其中三個主節點,第三件事就是把其中一部分節點的身份改成從節點身份(因爲默認啓動起來的節點的身份都是主節點)
將啓動的各個節點進行連接操作,我們這裏在節點 1 上操作
分配槽,我們這裏選擇端口爲 7000、7001、7002 的節點作爲主節點,7003、7004、7005 爲叢節點
注意: 這裏不能通過 redis-cli 登錄上去執行,否則會報如下錯誤:
槽分配完成以後,正常情況下我們可以看到如下圖所示的信息,從信息中我們可以看出 cluster_state:ok
,該信息表示 Redis 集羣現在已經可以正常工作了。
我們在來看看剛剛槽分配的情況,執行一下命令查看,通過截圖可以看出,16384 個槽按照預期被分配到了 7001、7002、7003 端口對應的節點上了。
到此,整個集羣的主節點已經全部配置好了,並且集羣的工作狀態也是 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:你必須要知道集羣內部工作原理的一些事!
感謝您的【點贊】和【轉發】支持