久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis集群如何增加節點與刪除節點

175次閱讀
沒有評論

共計 3059 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Redis 集群如何增加節點與刪除節點,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

查看集群啟動情況:ps -ef | grep redis

查看集群的 slots 分配情況以及節點之間的主從關系:

首先登陸節點 7000:redis-cli -p 7000 -h 192.168.182.132 -c // 注意不要丟了 -c

cluster nodes 查看集群節點信息

在本例中我們先增加兩個節點:主節點 7006 和從節點 7007,并給 7006 分配 4096 個 slots,設置 7007 為 7006 的從節點,然后再將這兩個節點從集群中刪除,一定要先刪除主節點,再刪除從節點,要不然故障轉移會生效。

一、集群的擴容

1. 準備新的節點

在集群目錄 redis_cluster 目錄下增加 redis7006 和 redis7007 目錄

mkdir redis7006

mkdir redis7007

增加完成后的目錄

復制端口 7000 的 redis.conf 配置文件到 redis7006 和 redis7007 目錄下,并修改配置文件中的端口為對應目錄的端口號。

例如 redis7006 下的 redis.conf 文件的內容為:

port 7006
bind 192.168.182.132 // 本機 IP
daemonize yes // 設置為后臺運行
pidfile /var/run/redis-7006.pid
cluster-enabled yes // 開啟集群
cluster-config-file node-7006.conf
cluster-node-timeout 15000
appendonly yes

準備完成后,啟動兩個新的 redis 節點:

redis-server redis7006/redis.conf
redis-server redis7007/redis.conf
ps -ef | grep redis // 查看新的 redis 節點是否啟動成功 

啟動以后登錄 7006 查看節點情況:

redis-cli -p 7006 -h 192.168.182.132 -c
cluster nodes

2. 添加主節點

(1)向集群中添加節點 7006,注意一定要保證節點里面沒有添加過任何數據,不然添加會報錯。

cd /usr/local/redis/redis/src
./redis-trib.rb add-node 192.168.182.132:7006 192.168.182.132:7000
 // 第一次節點為新增的節點   第二個節點為集群中的節點 

添加成功:

可以看到使用 addnode 命令來添加節點,第一個參數是新節點的地址,第二個參數是任意一個已經存在的節點的 IP 和端口. 我們可以看到新的節點已經添加到集群中:

新節點 7006 現在已經連接上了集群,成為集群的一份子,并且可以對客戶端的命令請求進行轉向了,但是和其他主節點相比,新節點還有兩點區別:

新節點沒有包含任何數據,因為它沒有包含任何哈希槽. 盡管新節點沒有包含任何哈希槽,但它仍然是一個主節點,所以在集群需要將某個從節點升級為新的主節點時,這個新節點不會被選中。

接下來,只要使用 redis-trib 程序,將集群中的某些哈希桶移動到新節點里面,新節點就會成為真正的主節點了。

(2) 為主節點 7006 分配虛擬槽

cd /usr/local/redis/redis/src
./redis-trib.rb reshard 192.168.182.132:7001 // 可以為任意的節點   在此登錄的 7001 只是作為客戶端去訪問的 

執行后:

因為我們增加 7006 為主節點后,一共存在四個主節點,為了平均分配我們需要給 7006 分配 16384 除以 4 等于 4096 個節點,所以我們輸入 4096,按 enter 繼續:

輸入 7006 的節點 ID,按 enter 繼續:

從哪些主節點抽取槽到新節點中:all 為所有主節點,done:指定節點,在這里我們輸入 all, 按 enter 繼續:

Redis 集群如何增加節點與刪除節點

輸入 yes 后按 enter 開始給 7006 分配虛擬槽,分配完成后:

Redis 集群如何增加節點與刪除節點

登錄集群查看一下集群的狀態:

redis-cli -p 7000 -h 192.168.182.132 -c
cluster nodes

Redis 集群如何增加節點與刪除節點

至此主節點已經添加完畢了,我們的集群由三主三從變成了四主三從。

3. 添加從節點 7007

(1) 使用 add-node 添加新節點

cd /usr/local/redis/redis/src
./redis-trib.rb add-node 192.168.182.132:7007 192.168.182.132:7000
 // 第一次節點為新增的節點   第二個節點為集群中的節點 

加入集群成功,登錄到集群中查看一下集群狀態:

Redis 集群如何增加節點與刪除節點

7007 還是一個 Master 節點,而且沒有擁有自己的 slot 槽。那么我們接下來要讓它變成從節點。

(2) 將 7007 變為 7006 的 從節點

使用 CLUSTER REPLICATE 命令改變一個從節點的主節點。

redis-cli -p 7007 -h 192.168.182.132
cluster replicate 52d169e7011ccdf10f99c1d83f92409dcc37ab55 // 后面的字符串為節點 7006 的節點 ID

設置成功后查看一下:

Redis 集群如何增加節點與刪除節點

集群的從節點 7007 添加成功。

二、集群的縮容

只要使用 del-node 命令即可:

./redis-trib del-node 127.0.0.1:7000  node-id 
第一個參數是任意一個節點的地址, 第二個節點是你想要移除的節點地址。

使用同樣的方法移除主節點, 不過在移除主節點前,需要確保這個主節點是空的. 如果不是空的, 需要將這個節點的數據重新分片到其他主節點上.

替代移除主節點的方法是手動執行故障恢復,被移除的主節點會作為一個從節點存在,不過這種情況下不會減少集群節點的數量,也需要重新分片數據.[/code]

1. 刪除從節點

刪除節點用 del-node 命令。此命令需要制定刪除節點的 ip 和端口,以及節點的 id。

cd /usr/local/redis/redis/src
./redis-trib.rb del-node 192.168.182.132:7007 7007 節點 ID

刪除成功后:

Redis 集群如何增加節點與刪除節點

刪除后我們再次查看集群的節點信息,如下所示,7007 從節點已經被移除掉。

Redis 集群如何增加節點與刪除節點

2. 刪除主節點

(1) 將主節點 7006 的 slots 分配到其他主節點上

cd /usr/local/redis/redis/src
 ./redis-trib.rb reshard 192.168.182.132:7006

Redis 集群如何增加節點與刪除節點

選擇完這幾項以后,回車繼續:

Redis 集群如何增加節點與刪除節點

輸入 yes, 表示接受這個計劃,然后回車,完成 7006 節點的槽的移除。

登錄集群查看當前集群情況:

Redis 集群如何增加節點與刪除節點

節點 7006 上沒有任何槽。

(2) 使用 del-node 命令來刪除 7006 主節點。

cd /usr/local/redis/redis/src
./redis-trib.rb del-node 192.168.182.132:7006 52d169e7011ccdf10f99c1d83f92409dcc37ab55

刪除成功:

Redis 集群如何增加節點與刪除節點

最后登錄查看集群又恢復到了三主三從的結構了,只是從剛開始的均勻分配變成了 7000 端口的主節點多了 4096 個 slots。

關于“Redis 集群如何增加節點與刪除節點”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計3059字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 林周县| 横山县| 临江市| 瑞金市| 临夏县| 富民县| 札达县| 高台县| 玛多县| 南岸区| 翁源县| 明水县| 灵台县| 濮阳市| 迁安市| 长沙县| 新源县| 双峰县| 巴马| 仙桃市| 阿勒泰市| 平顶山市| 福海县| 阿拉善右旗| 龙海市| 丹江口市| 来宾市| 纳雍县| 仲巴县| 乌审旗| 浙江省| 安陆市| 德江县| 确山县| 平南县| 西华县| 淮南市| 澳门| 石阡县| 富锦市| 突泉县|