国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

淮安網(wǎng)站建設(shè)公司電話源碼交易平臺

淮安網(wǎng)站建設(shè)公司電話,源碼交易平臺,中國建設(shè)銀行官網(wǎng)首頁,網(wǎng)站建站怎么報價探究Redis服務(wù)啟動的過程機制的技術(shù)原理和流程分析的指南(集群指令分析—下篇) Cluster XX的集群指令(擴展)寫入記錄主節(jié)點和備節(jié)點切換-CLUSTER FAILOVER新加入master節(jié)點新加入slave節(jié)點為slave節(jié)點重新分配master分配哈希槽刪除…

探究Redis服務(wù)啟動的過程機制的技術(shù)原理和流程分析的指南(集群指令分析—下篇)

  • Cluster XX的集群指令(擴展)
  • 寫入記錄
  • 主節(jié)點和備節(jié)點切換-CLUSTER FAILOVER
  • 新加入master節(jié)點
  • 新加入slave節(jié)點
  • 為slave節(jié)點重新分配master
  • 分配哈希槽
  • 刪除從節(jié)點
  • 刪除主節(jié)點
  • 檢查集群所有節(jié)點是否正常

Cluster XX的集群指令(擴展)

下面是對Redis集群擴展的指令:

  • cluster myid:用于獲取當前節(jié)點的ID。

該指令返回節(jié)點的ID。在Redis集群中,每個節(jié)點都有一個唯一的ID,通過該指令可以獲取當前節(jié)點的ID。這個ID在集群中具有重要的作用,例如在進行節(jié)點之間的通信時進行鑒權(quán)。

  • cluster slots:用于獲取當前節(jié)點負責的槽信息。

該指令用于返回節(jié)點負責的槽(slot)信息。在Redis集群中,數(shù)據(jù)通過哈希槽的方式進行分片存儲,每個槽代表一個指定范圍的數(shù)據(jù),每個節(jié)點負責管理一部分槽。通過該指令可以獲取當前節(jié)點負責管理的槽的信息,包括槽的起始和結(jié)束范圍以及負責該槽的主節(jié)點和從節(jié)點信息。

  • cluster reset:用于重置Redis集群的狀態(tài),慎用,可能導致數(shù)據(jù)丟失和系統(tǒng)不可用。

該指令用于重置Redis集群。這個指令的作用比較危險,它會重置整個集群的狀態(tài),并清除所有的節(jié)點信息和槽分配信息。因此,使用該指令需要非常謹慎,因為重置集群可能導致數(shù)據(jù)丟失和系統(tǒng)不可用。一般情況下,只有在出現(xiàn)集群狀態(tài)混亂或需要重新搭建集群時才會使用該指令。

寫入記錄

只有擁有哈希槽的節(jié)點才能存儲數(shù)據(jù),因此只有主節(jié)點才有寫入數(shù)據(jù)的權(quán)限。

[root src]# redis-cli -h xx.xx.xx.xx -p 6380
xx.xx.xx.xx:xxxx> get key
(nil)
xx.xx.xx.xx:xxxx> set key  123
OK

主節(jié)點和備節(jié)點切換-CLUSTER FAILOVER

在需要的slaves節(jié)點上執(zhí)行命令:CLUSTER FAILOVER,要進行主備切換,您需要先登錄到備節(jié)點,然后在備節(jié)點上執(zhí)行切換到主節(jié)點的命令。

[root ~]# /data/redis-x.x.x/src/redis-cli -h xx.xx.xx.xx -p xxxx
xx.xx.xx.xx:xxxx> cluster failover
(error) ERR You should send CLUSTER FAILOVER to a slave
xx.xx.xx.xx:xxxx> exit[root ~]# /data/redis-x.x.x/src/redis-cli -h xx.xx.xx.xx -p xxxx2
xx.xx.xx.xx:xxxx2> cluster failover     ##切換到主節(jié)點
OK
xx.xx.xx.xx:xxxx> cluster nodes
777c9eab94812d13d8b9dc768460dcf1316283f1 xx.xx.xx.xx:xxxx slave c93b6d1edd6bc4c69d48f9f49e75c2c7f0d1a70c 0 1511223574993 6 connected
92dfe8ab12c47980dcc42508672de62bae4921b1 xx.xx.xx.xx:xxxx2 myself,master - 0 0 8 connected 500-5460
2f003cfd139ae4f2bbdac40b0055b46bdff96e0a xx.xx.xx.xx:xxxx slave 92dfe8ab12c47980dcc42508672de62bae4921b1 0 1511223577007 8 connected

新加入master節(jié)點

Redis實例添加到集群之前,請務(wù)必確保該Redis實例沒有存儲過任何數(shù)據(jù),并且沒有持久化的數(shù)據(jù)文件,否則在添加過程中會出現(xiàn)錯誤,為了進行節(jié)點的維護操作,您需要使用redis-trib.rb工具而不是redis-cli客戶端。在退出客戶端后,可以按照以下命令使用該工具:

/redis所在目錄/src/redis-trib.rb add-node 新節(jié)點ip:端口號 集群中任意節(jié)點ip:端口號

如果您需要添加新的Redis節(jié)點到集群中,請將"新節(jié)點ip"替換為要添加的Redis節(jié)點的IP地址,將"端口號"替換為對應(yīng)的端口號,并將"集群中任意節(jié)點ip"替換為已存在的集群中的任意一個節(jié)點的IP地址和端口號。

新加入slave節(jié)點

添加從節(jié)點到集群的操作可以按照以下步驟進行:

  1. 首先,通過運行命令redis-cli并使用cluster node命令查看主節(jié)點的ID(用于替換"主節(jié)點的id")。

  2. 然后,退出redis-cli客戶端。

  3. 使用以下命令將從節(jié)點添加到集群:

    /redis所在目錄/src/redis-trib.rb add-node --slave --master-id 主節(jié)點的id 新節(jié)點ip:端口號 集群中任意節(jié)點ip:端口號
    

在上述命令中,將"新節(jié)點ip"替換為要添加的從節(jié)點的IP地址,將"端口號"替換為對應(yīng)的端口號,將"主節(jié)點的id"替換為主節(jié)點的實際ID,將"集群中任意節(jié)點ip"替換為已存在的集群中的任意一個節(jié)點的IP地址和端口號。

[root@xxxx~]# /data/redis-x.x.x/src/redis-trib.rb add-node xx.xx.xx.xx:xxxx1 xx.xx.xx.xx:xxxx2
>>> Adding node xx.xx.xx.xx:xxxx1 to cluster xx.xx.xx.xx:xxxx2
>>> Performing Cluster Check (using node xx.xx.xx.xx:xxxx1)
M: c93b6d1edd6bc4c69d48f9f49e75c2c7f0d1a70c xx.xx.xx.xx:xxxx1slots:500-5460,15464-16383 (5881 slots) master2 additional replica(s)
S: 2f003cfd139ae4f2bbdac40b0055b46bdff96e0a xx.xx.xx.xx:xxxx2slots: (0 slots) slavereplicates c93b6d1edd6bc4c69d48f9f49e75c2c7f0d1a70c
M: 2da5edfcbb1abc2ed799789cb529309c70cb769e xx.xx.xx.xx:xxxx1slots:0-499,5461-15463 (10503 slots) master1 additional replica(s)
S: c0e1784f0359f986972c1f9a0d9788f3d69e6c99 xx.xx.xx.xx:xxxx2slots: (0 slots) slavereplicates 2da5edfcbb1abc2ed799789cb529309c70cb769e
S: 777c9eab94812d13d8b9dc768460dcf1316283f1 xx.xx.xx.xx:xxxx4slots: (0 slots) slavereplicates c93b6d1edd6bc4c69d48f9f49e75c2c7f0d1a70c
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node xx.xx.xx.xx:xxxx1 to make it join the cluster.
[OK] New node added correctly.

為slave節(jié)點重新分配master

首先,登錄到需要設(shè)置為新的從節(jié)點的Redis實例上,可以使用以下命令:

/data/redis-xxxx/src/redis-cli -h xx.xx.xx.xx -p xxxx

然后,在Redis命令行界面上執(zhí)行以下命令:

cluster replicate 8c6534cbfbd2b5453ab4c90c7724a75d55011c27

上述命令中的"8c6534cbfbd2b5453ab4c90c7724a75d55011c27"是新的主節(jié)點的ID,將其替換為實際的ID。

執(zhí)行完以上命令后,繼續(xù)執(zhí)行以下命令:

cluster nodes

確認節(jié)點配置已更新,輸出結(jié)果應(yīng)包含類似如下內(nèi)容:

2f003cfd139ae4f2bbdac40b0055b46bdff96e0a xx.xx.xx.xx:xxxx myself,slave 8c6534cbfbd2b5453ab4c90c7724a75d55011c27 0 0 1 connected

分配哈希槽

reshard是redis cluster的核心功能,它通過遷移哈希槽來達到負載勻衡和可擴展目的。進入Redis所在目錄,并使用以下命令來執(zhí)行reshard操作:

/src/redis-trib.rb reshard 新節(jié)點ip:端口號

其中,"新節(jié)點ip:端口號"需要替換為實際的新節(jié)點的IP地址和端口號。執(zhí)行以上命令后,會詢問您要借用多少個哈希槽來分配給新的主節(jié)點。您可以根據(jù)需求輸入一個合適的數(shù)值,例如我們填入1000。

接下來,會要求您輸入新節(jié)點的ID(即新的主節(jié)點的ID),您需要輸入剛創(chuàng)建的節(jié)點的ID,即"ip:port"。

然后,會要求您輸入源節(jié)點。如果您想從所有節(jié)點中隨機選取一部分哈希槽分配給新節(jié)點,您可以輸入"all",否則可以輸入具體的源節(jié)點。

完成以上步驟后,Redis集群會開始移動哈希槽,并顯示相應(yīng)的狀態(tài)提示。

移動完成后,您可以進入Redis客戶端,并執(zhí)行以下命令:

cluster nodes

通過執(zhí)行以上命令,您可以查看集群節(jié)點的狀態(tài),確認新添加的節(jié)點已成功分配了哈希槽。

刪除從節(jié)點

刪除節(jié)點可以分為兩種情況:主節(jié)點和從節(jié)點。對于從節(jié)點,由于沒有分配哈希槽,因此刪除操作非常簡單,只需執(zhí)行以下命令:

/redis所在目錄/src/redis-trib.rb del-node 從節(jié)點ip:從節(jié)點端口號 從節(jié)點的id號

例如,刪除主節(jié)點IP為xxxxxxxx,端口號為6381,ID為d14e2f0538dc6925f04d1197b57f44ccdb7c683a的從節(jié)點,可以執(zhí)行以下命令:

[root@mysql-db01 src]# /data/redis-xxxx/src/redis-trib.rb del-node xxxxxx:6381 d14e2f0538dc6925f04d1197b57f44ccdb7c683a

執(zhí)行以上命令后,將從集群中移除節(jié)點,并發(fā)送CLUSTER FORGET消息到集群中的其他節(jié)點,最后關(guān)閉該節(jié)點。

同樣地,刪除主節(jié)點IP為xxxxxxx,端口號為6384,ID為e2cfd53b8083539d1a4546777d0a81b036ddd82a的從節(jié)點,可以執(zhí)行以下命令:

[root@mysql-db01 src]# /data/redis-xxxx/src/redis-trib.rb del-node xxxxxxx:6384 e2cfd53b8083539d1a4546777d0a81b036ddd82a

執(zhí)行以上命令后,同樣會將節(jié)點從集群中移除,并發(fā)送CLUSTER FORGET消息到集群中的其他節(jié)點,最后關(guān)閉該節(jié)點。

刪除主節(jié)點

在刪除主節(jié)點之前,需要進行一些數(shù)據(jù)遷移操作,并將該節(jié)點上的哈希槽分配給其他主節(jié)點。同時,在刪除主節(jié)點時,如果該主節(jié)點下還有從節(jié)點,需要將從節(jié)點分配給其他主節(jié)點或進行刪除操作。

如果主節(jié)點下有從節(jié)點,需要將從節(jié)點分配給其他主節(jié)點或刪除。

  1. 遷移主節(jié)點上的數(shù)據(jù):首先,連接到要刪除的主節(jié)點,可以使用以下命令連接到指定的主節(jié)點:

    [root@mysql-db01 ~]# /data/redis-x.x.x/src/redis-cli -h x.x.x.x -p xxxx
    

    然后,執(zhí)行以下命令將主節(jié)點的數(shù)據(jù)遷移到其他主節(jié)點:

    10.0.0.70:6383> cluster replicate f1f6e93e625e8e0cef0da1b3dfe0a1ea8191a1ad
    

    這將把主節(jié)點的數(shù)據(jù)遷移到ID為f1f6e93e625e8e0cef0da1b3dfe0a1ea8191a1ad的主節(jié)點上。

  2. 處理主節(jié)點下的從節(jié)點:如果主節(jié)點下存在從節(jié)點,需要將這些從節(jié)點分配給其他主節(jié)點或進行刪除操作。

    • 如果要分配給其他主節(jié)點,可以使用以下命令連接到主節(jié)點并執(zhí)行相應(yīng)的操作:

      [root@mysql-db01 ~]# /data/redis-x.x.x/src/redis-cli -h x.x.x.x -p xxxx
      x.x.x.x:xxxx> cluster nodes
      

      然后根據(jù)需要,將從節(jié)點分配給其他主節(jié)點或刪除。

    • 如果要刪除從節(jié)點,可以使用以下命令連接到其他主節(jié)點并執(zhí)行刪除操作:

      [root@mysql-db01 ~]# /data/redis-x.x.x/src/redis-trib.rb del-node <主節(jié)點IP:端口號> <從節(jié)點ID>
      

      使用上述命令將從節(jié)點分配給其他主節(jié)點或進行刪除操作。

  3. 遷移哈希槽(槽):使用以下命令進行遷移操作,將主節(jié)點上的哈希槽(槽)分配到其他主節(jié)點上,以保持集群的完整性:

    [root@mysql-db01 ~]# /data/redis-x.x.x/src/redis-trib.rb reshard <待遷移哈希槽的主節(jié)點IP:端口號>
    

    程序會提示您輸入遷移的哈希槽數(shù)量和接收哈希槽的主節(jié)點ID,按照提示進行操作即可。

  4. 刪除主節(jié)點:一旦完成數(shù)據(jù)遷移和哈希槽遷移操作,就可以刪除主節(jié)點了。使用以下命令連接到要刪除的主節(jié)點并執(zhí)行刪除操作:

    [root@mysql-db01 ~]# /data/redis-x.x.x/src/redis-trib.rb del-node <待刪除主節(jié)點的IP:端口號> <待刪除主節(jié)點的ID>
    

    執(zhí)行上述命令后,主節(jié)點將被成功刪除。

檢查集群所有節(jié)點是否正常

要檢查集群中任意節(jié)點的狀態(tài),可以使用以下命令:

/redis所在目錄/src/redis-trib.rb check 集群任意節(jié)點ip:節(jié)點端口號

例如,在節(jié)點IP為x.x.x.x,端口號為xxxx的節(jié)點上執(zhí)行集群檢查,可以執(zhí)行以下命令:

[root@mysql-db01 ~]# /data/redis-xxx.xxx.xxx.xxx/src/redis-trib.rb check x.x.x.x:xxxx

執(zhí)行以上命令后,會進行集群檢查并輸出集群狀態(tài)信息,包括主節(jié)點(帶有M標記)和從節(jié)點(帶有S標記)的具體信息,以及每個節(jié)點的哈希槽分配情況。

同時,還會對集群進行一些檢查,包括:

  • 檢查所有節(jié)點是否對哈希槽配置達成一致;
  • 檢查是否所有的16384個哈希槽都被分配到節(jié)點上。

在以上示例中,集群檢查結(jié)果顯示所有節(jié)點對于哈希槽的配置達成一致,且所有16384個哈希槽都被分配到了節(jié)點上。

http://aloenet.com.cn/news/39130.html

相關(guān)文章:

  • 創(chuàng)建學校網(wǎng)站蘭州seo培訓
  • 網(wǎng)站解析怎么做谷歌瀏覽器引擎入口
  • appui設(shè)計圖seo及網(wǎng)絡(luò)推廣招聘
  • 網(wǎng)站管理公司seo推廣排名平臺有哪些
  • 北京官方網(wǎng)站網(wǎng)百度seo收費
  • 動態(tài)網(wǎng)站后臺怎么做2021年最為成功的營銷案例
  • 建設(shè)銀行博士后招聘網(wǎng)站營銷推廣軟件有哪些
  • baiduspider無法訪問您的網(wǎng)站微信管理工具
  • 垂直網(wǎng)站建設(shè)東莞seo項目優(yōu)化方法
  • 做網(wǎng)站公司鄭州鄭州的網(wǎng)站建設(shè)公司百度貼吧網(wǎng)頁版登錄
  • 徐州優(yōu)化網(wǎng)站建設(shè)網(wǎng)絡(luò)工程師培訓機構(gòu)排名
  • WordPress用戶認證中心百度seo提高排名費用
  • 博客wordpress模版8.0外包seo服務(wù)口碑好
  • 信息技術(shù)咨詢公司鄭州靠譜seo電話
  • 企業(yè)網(wǎng)站功能描述企業(yè)網(wǎng)站seo點擊軟件
  • 我想在網(wǎng)站上賣食品怎么做seo大牛
  • 開發(fā)網(wǎng)站商城流程優(yōu)化的七個步驟
  • 高端響應(yīng)式網(wǎng)站開發(fā)2023b站免費推廣入口
  • 網(wǎng)站開發(fā)項目設(shè)計文檔n127網(wǎng)推廣
  • 做雞直播網(wǎng)站快排seo
  • 網(wǎng)站建設(shè)html5網(wǎng)絡(luò)推廣與網(wǎng)絡(luò)營銷的區(qū)別
  • 電子商務(wù)自助建網(wǎng)站免費seo教程資源
  • wordpress底部導航代碼seochinaz查詢
  • 如何做購物網(wǎng)站的教程青山seo排名公司
  • 做seo要先做網(wǎng)站么輿情網(wǎng)站直接打開
  • 一個可以做行程的網(wǎng)站seo外鏈工具有用嗎
  • 邢臺123生活最新帖子武漢企業(yè)seo推廣
  • 中衛(wèi)市網(wǎng)站開發(fā)制作網(wǎng)址域名大全
  • 網(wǎng)站上傳照片失敗東莞seo外包公司哪家好
  • 網(wǎng)站版權(quán)文字seo排名賺app最新版本