国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

redis cluster 擴(kuò)容

call_me_R / 1621人閱讀

摘要:重新分片,把要?jiǎng)h除的主節(jié)點(diǎn)的數(shù)據(jù)槽移動(dòng)到其他主節(jié)點(diǎn)上,以免數(shù)據(jù)丟失。分區(qū)完成當(dāng)前主節(jié)點(diǎn)已經(jīng)沒有數(shù)據(jù)槽了。這樣就可以實(shí)現(xiàn)橫向動(dòng)態(tài)擴(kuò)容,新增加的主從節(jié)點(diǎn),用于存儲(chǔ)新的數(shù)據(jù)則可,對以前的節(jié)點(diǎn)的數(shù)據(jù)不會(huì)有任何影響。

需求:

A redis cluster 集群 40 臺(tái)集群擴(kuò)容到 68 臺(tái)
也就是 增加 28 臺(tái)新的機(jī)器 : 一主一從 為一組,一共12組

前期準(zhǔn)備
   掃描新增擴(kuò)容服務(wù)器ip是否能訪問
   DBA擴(kuò)容腳本模擬驗(yàn)證
   準(zhǔn)備系統(tǒng)驗(yàn)證腳本:
       1: netstat -an | grep ":6379"| grep -e add-node1-ip  檢查端口連接
                       netstat -an| grep :6379|awk "{print substr($5,8)}"|sort |uniq -c
       2: 比較遷移前后平均沒臺(tái)機(jī)器的內(nèi)存容量         
curl "http://localhost:8080/systemapp/redis/info.htm?ip=add-node1-ip&port=6379" | grep maxmemory_human --col=always | grep used_memory_human --col=always | grep total_system_memory_human --col   
       3:查看各系統(tǒng)業(yè)務(wù)是否異常,是否右redis相關(guān)報(bào)錯(cuò)日志


Redis Cluster集群動(dòng)態(tài)擴(kuò)容是指在不停掉Cluster集群環(huán)境的情況下,動(dòng)態(tài)的往集群環(huán)境中增加主、從節(jié)點(diǎn)和動(dòng)態(tài)的從集群環(huán)境中刪除節(jié)點(diǎn)。

redis的動(dòng)態(tài)擴(kuò)容操作都是通過redis-trib.rb腳本文件來完成

 [root@linux redis] # ruby redis-trib.rb
      可以看到redis-trib.rb具有以下功能: 
1、create:創(chuàng)建集群 
2、check:檢查集群 
3、info:查看集群信息 
4、fix:修復(fù)集群 
5、reshard:在線遷移slot 
6、rebalance:平衡集群節(jié)點(diǎn)slot數(shù)量 
7、add-node:將新節(jié)點(diǎn)加入集群 
8、del-node:從集群中刪除節(jié)點(diǎn) 
9、set-timeout:設(shè)置集群節(jié)點(diǎn)間心跳連接的超時(shí)時(shí)間 
10、call:在集群全部節(jié)點(diǎn)上執(zhí)行命令 
11、import:將外部redis數(shù)據(jù)導(dǎo)入集群     

因?yàn)橹鳌墓?jié)點(diǎn)在操作上會(huì)有差異,所以分來來說。增加節(jié)點(diǎn)的順序是先增加Master主節(jié)點(diǎn),然后在增加Slave從節(jié)點(diǎn)。

-- 查看redis 進(jìn)程
ps -ef | grep redis

--登陸查看主從信息
redis-cli -h node-ip -p port
cluster nodes

動(dòng)態(tài)增加Master 主服務(wù)器節(jié)點(diǎn)

#前提:假設(shè) 已有6個(gè)Cluster 集群節(jié)點(diǎn),三主三從;
   1.1、創(chuàng)建目錄7006(Master主節(jié)點(diǎn)文件夾)和7007(Slave從節(jié)點(diǎn)文件夾),并從以前Cluster集群節(jié)點(diǎn)7000-7005任一節(jié)點(diǎn)中拷貝配置文件redis.conf到7006和7007目錄下。    
    1.2、修改配置文件,將7006和7007目錄下面的redis.conf配置文件的端口進(jìn)行相應(yīng)修改,與自己的目錄名稱保持一致,修改項(xiàng)目如下:
    (在linux環(huán)境下可以執(zhí)行如下命令進(jìn)行全局替換::%s/7000/7006/g,%s/7000/7007/g,保存并退出則可)
    1.3、啟動(dòng)7006和7007目錄下Redis實(shí)例,并查看效果。
                redis-server ../redis-cluster/7006/redis.conf
                redis-server ../redis-cluster/7007/redis.conf
   ###連個(gè)實(shí)例雖然存在,但是沒有真正的加入到集群中!!!

登陸7006 7007 端口的實(shí)例 查看info信息 發(fā)現(xiàn) connected_slaves = 0
redis-cli -C -H 192.168.127.130 -p 7006
info replication

將7006主節(jié)點(diǎn)加入到Cluster集群

    ruby redis-trib.rb add-node add-node1:7006 old-node:7000 

ruby redis-trib.rb add-node (增加節(jié)點(diǎn))
add-node1:7006 (新增實(shí)例和端口 )
old-node:7000 (集群中已經(jīng)存在的任意實(shí)例地址和其端口 )

注意:當(dāng)添加新節(jié)點(diǎn)成功以后,新的節(jié)點(diǎn)不會(huì)有任何數(shù)據(jù),因?yàn)樗麤]有分配任何的數(shù)據(jù)Slot(哈希slots),這一步需要手動(dòng)操作。

Send CLUSTER MEET to node add-node1:7006 to make it join the cluster. 
New node added corrently 

表示:節(jié)點(diǎn)增加成功

cluster info 驗(yàn)證

cluster nodes 驗(yàn)證: 添加成功但是會(huì)沒有Slots

為7006Master主節(jié)點(diǎn)分配數(shù)據(jù)Slots,分配方法是從集群中知道任何一個(gè)主節(jié)點(diǎn)
(因?yàn)橹挥蠱aster主節(jié)點(diǎn)才有數(shù)據(jù)slots),然后對其進(jìn)行重新分片工作。

ruby redis-trib.rb reshard old-node:7000
我們會(huì)從7000這個(gè)主節(jié)點(diǎn)上抽取一些slots 給7006 
How many slots do you want to move (from 1 to 16384)?  200
我們要使用多少slots    
 選擇接收數(shù)據(jù)槽的節(jié)點(diǎn)和數(shù)據(jù)槽產(chǎn)生的方式:
 what is the receiving node id ? 接受slots的主節(jié)點(diǎn) 這里是7006的ID
 Please enter all the source node IDs: all  

執(zhí)行分配計(jì)劃后選擇yes ,查看cluster nodes,顯示7006有數(shù)據(jù)slots

動(dòng)態(tài)增加Slave從服務(wù)器節(jié)點(diǎn)
ruby redis-trib.rb add-node 192.168.127.130:7007 192.168.127.130:7000
指定7007節(jié)點(diǎn)作為7006的從節(jié)點(diǎn),實(shí)現(xiàn)主從的配置。

redis-cli -c -h 192.168.127.130 -p 7007 
   cluster replicate 71ecd970838e9b400a2a6a15cd30a94ab96203bf
                                    (主節(jié)點(diǎn)的ID,這里是7006)


Cluster 集群刪除操作
刪除的順序是先刪除Slave從節(jié)點(diǎn),然后在刪除Master主節(jié)點(diǎn)

1.動(dòng)態(tài)刪除Slave從服務(wù)器節(jié)點(diǎn)
ruby redis-trib.rb del-node 192.168.127.130:7007 991ed242102aaa08873eb9404a18e0618a4e37bd
 2.動(dòng)態(tài)刪除Master主服務(wù)器節(jié)點(diǎn)   
要想刪除Master主節(jié)點(diǎn),可能要繁瑣一些。
因?yàn)樵贛aster主節(jié)點(diǎn)上有數(shù)據(jù)槽(slots),為了保證數(shù)據(jù)的不丟失,
必須把這些數(shù)據(jù)槽遷移到其他Master主節(jié)點(diǎn)上,然后在刪除主節(jié)點(diǎn)。
2.1、重新分片,把要?jiǎng)h除的Master主節(jié)點(diǎn)的數(shù)據(jù)槽移動(dòng)到其他Master主節(jié)點(diǎn)上,以免數(shù)據(jù)丟失。
    ruby redis-trib.rb reshard 192.168.127.130:7006
    2.1.1、移除多少槽如圖:創(chuàng)建輸入200,這里要輸入199,因?yàn)橛?jì)數(shù)是從0開始的,切記。
    2.1.2、接受槽的Master主節(jié)點(diǎn)ID:這個(gè)節(jié)點(diǎn)可以是任意一個(gè)主節(jié)點(diǎn)都可以,
    我選擇7002,ID是:3b025b3ecfa65f462de639c7a412be443cf1dd1c
    Source node 選擇 需要移除節(jié)點(diǎn)7006的ID號(hào) 
    2.1.4、執(zhí)行分區(qū)計(jì)劃,選擇yes。分區(qū)完成
    2.1.5、當(dāng)前7006主節(jié)點(diǎn)已經(jīng)沒有數(shù)據(jù)槽了。
    2.2、刪除7006主節(jié)點(diǎn),提供要?jiǎng)h除節(jié)點(diǎn)的IP地址和Port端口,當(dāng)然還有要?jiǎng)h除的節(jié)點(diǎn)的ID名稱。
     ruby redis-trib.rb del-node 192.168.127.130:7006 71ecd970838e9b400a2a6a15cd30a94ab96203bf
  2.2.1、刪除成功 
  2.2.2、查看節(jié)點(diǎn)效果 cluster nodes
  

_

總結(jié):

主從復(fù)制和哨兵模式這兩個(gè)集群模式由于不能動(dòng)態(tài)擴(kuò)容,而且主節(jié)點(diǎn)之間(有多個(gè)主節(jié)點(diǎn)的情況)數(shù)據(jù)完全一樣,導(dǎo)致了主節(jié)點(diǎn)的容量成了整個(gè)集群的瓶頸,如果想擴(kuò)展集群容量,必須擴(kuò)展主節(jié)點(diǎn)的容量。由于以上的問題,redis在3.0開始Cluster集群模式,這個(gè)模式在主節(jié)點(diǎn)之間數(shù)據(jù)是不一樣的,數(shù)據(jù)也可以根據(jù)需求自動(dòng)轉(zhuǎn)向其他節(jié)點(diǎn)。這樣就可以實(shí)現(xiàn)橫向動(dòng)態(tài)擴(kuò)容,新增加的主從節(jié)點(diǎn),用于存儲(chǔ)新的數(shù)據(jù)則可,對以前的節(jié)點(diǎn)的數(shù)據(jù)不會(huì)有任何影響。
參考:https://www.cnblogs.com/Patri...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77079.html

相關(guān)文章

  • Redis集群容器化安裝

    摘要:本文將講解如何基于搭建集群,的集群設(shè)計(jì)包括兩個(gè)部分主從復(fù)制和哈希。至此,集群基本安裝成功。后期運(yùn)維基本命令集群節(jié)點(diǎn)槽常見問題把所有的物理節(jié)點(diǎn)映射到個(gè)哈希槽上,負(fù)責(zé)維護(hù)。 Redis集群概述 Redis作為當(dāng)前非常熱門的內(nèi)存型數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用于數(shù)據(jù)存儲(chǔ),緩存和消息代理等。本文將講解如何基于docker搭建Redis集群,Redis的集群設(shè)計(jì)包括兩個(gè)部分:主從復(fù)制和哈希Slot。1.1....

    xiaoqibTn 評論0 收藏0
  • Redis集群容器化安裝

    摘要:本文將講解如何基于搭建集群,的集群設(shè)計(jì)包括兩個(gè)部分主從復(fù)制和哈希。至此,集群基本安裝成功。后期運(yùn)維基本命令集群節(jié)點(diǎn)槽常見問題把所有的物理節(jié)點(diǎn)映射到個(gè)哈希槽上,負(fù)責(zé)維護(hù)。 Redis集群概述 Redis作為當(dāng)前非常熱門的內(nèi)存型數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用于數(shù)據(jù)存儲(chǔ),緩存和消息代理等。本文將講解如何基于docker搭建Redis集群,Redis的集群設(shè)計(jì)包括兩個(gè)部分:主從復(fù)制和哈希Slot。1.1....

    sf_wangchong 評論0 收藏0

發(fā)表評論

0條評論

call_me_R

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<