當前位置:編程學習大全網 - 源碼下載 - Centos7.x Redis6.2.5 Cluster搭建

Centos7.x Redis6.2.5 Cluster搭建

官方地址:

前提條件:

Redis Cluster 不使用壹致性哈希,而是使用不同形式的分片 每個鍵在概念上都是我們所謂的 哈希槽的壹部分 。

Redis Cluster 有 16384 個哈希槽,計算哈希值是多少 給定密鑰的插槽,我們只需取密鑰的 CRC16 模 16384。

Redis 集群中的每個節點都負責哈希槽的壹個子集, 例如,您可能有壹個包含 3 個節點的集群,其中:

節點 A 包含從 0 到 5500 的哈希槽。

節點 B 包含從 5501 到 11000 的哈希槽。

節點 C 包含從 11001 到 16383 的哈希槽。

如果報錯 ERR This instance has cluster support disabled 的話,說明集群未開啟。

本例子是在壹臺服務器上面做的實驗,只是創建了6個目錄,啟了6個redis-server而已。

創建壹個 redis.conf每個目錄中的文件,從 7000 到 7005。 作為配置文件的模板,只需使用上面的小示例, 但壹定要更換端口號 7000使用正確的端口號 根據目錄名。

通過 ps aux|grep redis 查看redis的啟動情況。

如果不想通過配置和執行來創建Redis集群 如上所述,手動單個實例,有壹個更簡單的 系統(但您不會了解相同數量的操作細節)。

只需檢查 utils/create-clusterRedis 發行版中的目錄。 有壹個腳本叫做 create-cluster裏面(與目錄同名 它包含在)中,它是壹個簡單的 bash 腳本。 為了開始 壹個有 3 個主節點和 3 個從節點的 6 節點集群只需輸入以下內容 命令:

回復 yes在第 2 步中,當 redis-cli實用程序要妳接受 集群布局。

您現在可以與集群交互,第壹個節點將從端口 30001 開始 默認情況下。 完成後,使用以下命令停止集群:

請閱讀 README在此目錄中以獲取有關如何操作的更多信息 運行腳本。

create-cluster.sh

集群信息

集群節點

我上面的例子我們可以看出,設置的key會被分配到不同的實例去。

現在很多的sdk都支持move,例如:phpredis。

我們先查看下當前的集群情況。

目前 7000 , 7001 , 7002 是 master 角色, 7003 , 7004 , 7005 是 slave 角色。

然後我們將 7001 這個端口的redis服務的進程殺掉。

7004.log 日誌,發現 7001 主掛了,然後將自己升級為master。

查詢當前的集群狀態如下:

我們可以看出, 7004 升級了 master , 7001 是 fail 狀態。

啟動 7001 的redis服務。

7001.log 中可以發現,自己變成了 slave 。

此時我們再來看下集群情況:

目前 7000 , 7002 , 7004 是 master角色, 7001 , 7003 , 7005 是 slave角色,自動進行了故障切換。

如果配置了 requirepass 的話, masterauth 必須需要配置,不然 master 與 slave 不能自動切換。

修改配置文件 redis.conf 中的 cluster-enabled 參數的值為 yes 並把參數前#去除,重啟Redis服務器。

在命令尾部追加 2>/dev/null 即可。

我們繼續在 cluster-test 目錄下,創建 7006 目錄,配置和之前的壹樣,不同就是端口以及日誌路徑,然後啟動服務即可。

看下最新的集群情況

添加壹個 7006 的從節點。

在 cluster-test 目錄下,創建 7007 目錄,配置和之前的壹樣,不同就是端口以及日誌路徑,然後啟動服務即可。

看下最新的集群情況

從上面集群情況可以看出了問題,新增加的 7006 , 7007 的雖然增加到了集群裏面,但是沒有分配slot。

分配後的集群情況

縮容前:

將 7006 的slot給了 7000 。

縮容後:

刪除了 7006 , 7007 後的集群情況

  • 上一篇:誰推薦幾部穿越類的電影
  • 下一篇:OA、ERP、SRM、PLM、CAPP、MES、LIMS、CRM分別是什麽?
  • copyright 2024編程學習大全網