成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 深入淺析Redis 集群伸縮原理

深入淺析Redis 集群伸縮原理

熱門標簽:日本中國地圖標注 北京400電話辦理收費標準 鄭州人工智能電銷機器人系統(tǒng) 貴州電銷卡外呼系統(tǒng) 魔獸2青云地圖標注 宿遷便宜外呼系統(tǒng)平臺 十堰營銷電銷機器人哪家便宜 超呼電話機器人 山東外呼銷售系統(tǒng)招商

Redis 節(jié)點分別維護自己負責的槽和對應(yīng)的數(shù)據(jù)。伸縮原理:Redis 槽和對應(yīng)數(shù)據(jù)在不同節(jié)點之間移動

環(huán)境:CentOS7 搭建 Redis 集群

一、集群擴容

1. 手動擴容

(1) 準備節(jié)點 9007,并加入集群

192.168.11.40:9001> cluster meet 192.168.11.40 9007

【注意】若 cluster meet 加入已存在于其它集群的節(jié)點,會導(dǎo)致集群合并,造成數(shù)據(jù)錯亂!。建議使用 redis-cli 的 add-node:

# 若節(jié)點已加入其它集群或包含數(shù)據(jù),會報錯
add-node    new_host:new_port existing_host:existing_port
            --cluster-slave  # 直接添加為從節(jié)點
            --cluster-master-id arg>  # 從節(jié)點對應(yīng)的主節(jié)點id

(2) 遷移槽和數(shù)據(jù)

槽在遷移過程中集群可以正常提供讀寫服務(wù)

首先確定原有節(jié)點的哪些槽需要遷移到新節(jié)點。確保每個節(jié)點負責相似數(shù)量的槽,保證各節(jié)點的數(shù)據(jù)均勻

槽是 Redis 集群管理數(shù)據(jù)的基本單位。數(shù)據(jù)遷移是逐槽進行的

槽遷移流程:

  • 目標節(jié)點準備導(dǎo)入槽的數(shù)據(jù):目標節(jié)點執(zhí)行cluster setslot {slot} importing {sourceNodeId}
  • 源節(jié)點準備遷出槽的數(shù)據(jù):源節(jié)點執(zhí)行cluster setslot {slot} migrating {targetNodeId}
  • 獲取 count 個屬于槽 slot 的鍵:源節(jié)點執(zhí)行cluster getkeysinslot {slot} {count}
  • 遷移鍵:源節(jié)點執(zhí)行migrate {targetIp} {targetPort} "" 0 {timeout} keys {keys...},把鍵通過流水線(pipeline)機制批量遷移到目標節(jié)點。Redis3.0.6 后才支持批量遷移
  • 重復(fù)上兩步,直到槽下所有的鍵值數(shù)據(jù)遷移到目標節(jié)點
  • 向集群所有主節(jié)點通知槽被分配給目標節(jié)點:集群內(nèi)所有主節(jié)點執(zhí)行cluster setslot {slot} node {targetNodeId}

內(nèi)部偽代碼:

def move_slot(source,target,slot):
    # 目標節(jié)點準備導(dǎo)入槽
    target.cluster("setslot",slot,"importing",source.nodeId);
    # 目標節(jié)點準備全出槽
    source.cluster("setslot",slot,"migrating",target.nodeId);
    while true :
        # 批量從源節(jié)點獲取鍵
        keys = source.cluster("getkeysinslot",slot,pipeline_size);
        if keys.length == 0:
            # 鍵列表為空時,退出循環(huán)
            break;
        # 批量遷移鍵到目標節(jié)點
        source.call("migrate",target.host,target.port,"",0,timeout,"keys",keys);
        # 向集群所有主節(jié)點通知槽被分配給目標節(jié)點
        for node in nodes:
            if node.flag == "slave":
                continue;
            node.cluster("setslot",slot,"node",target.nodeId);

(3) 將 9001 的槽 4096 遷移到 9007 中

準備數(shù)據(jù)

192.168.11.40:9001> set key:test:5028 value:5028
192.168.11.40:9001> set key:test:68253 value:68253

目標節(jié)點準備工作

192.168.11.40:9007> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 master - 0 1620928869000 2 connected 0-5461
bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d 192.168.11.40:9007@19007 myself,master - 0 1620928868000 0 connected
...
# 9007 準備導(dǎo)入槽 4096 的數(shù)據(jù)
192.168.11.40:9007> cluster setslot 4096 importing 8ccdb0963411ebd05ce21952bdd4b7597825afdc
OK
# 槽 4096 已開啟導(dǎo)入狀態(tài)
192.168.11.40:9007> cluster nodes
bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d 192.168.11.40:9007@19007 myself,master - 0 1620928959000 0 connected [4096--8ccdb0963411ebd05ce21952bdd4b7597825afdc]
...

源節(jié)點準備工作

# 9001 準備導(dǎo)出槽 4096 數(shù)據(jù)
192.168.11.40:9001> cluster setslot 4096 migrating bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d
OK
# 槽 4096 已開啟導(dǎo)出狀態(tài)
192.168.11.40:9001> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620929179000 2 connected 0-5461 [4096->-bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d]
...

導(dǎo)出數(shù)據(jù)

# 獲取 100 個屬于槽 4096 的鍵
192.168.11.40:9001> cluster getkeysinslot 4096 100
1) "key:test:5028"
2) "key:test:68253"
# 查看數(shù)據(jù)
192.168.11.40:9001> mget key:test:5028 key:test:68253
1) "value:5028"
2) "value:68253"
# 遷移這2個鍵:migrate 命令保證了每個鍵遷移過程的原子性
192.168.11.40:9001> migrate 192.168.11.40 9007 "" 0 5000 keys key:test:5028 key:test:68253
OK
# 再次查詢會報 ASK 錯誤:引導(dǎo)客戶端找到數(shù)據(jù)所在的節(jié)點
192.168.11.40:9001> mget key:test:5028 key:test:68253
(error) ASK 4096 192.168.11.40:9007

通知所有主節(jié)點:槽 4096 指派給 9007

192.168.11.40:9001> cluster setslot 4096 node bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d
192.168.11.40:9002> cluster setslot 4096 node bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d
192.168.11.40:9003> cluster setslot 4096 node bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d
192.168.11.40:9007> cluster setslot 4096 node bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d

查看最終結(jié)果

192.168.11.40:9007> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 master - 0 1620931743303 7 connected 0-4095 4097-5461
bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d 192.168.11.40:9007@19007 myself,master - 0 1620931741000 8 connected 4096
...

2. 使用 redis-cli 擴容

redis-cli 提供了槽重分片功能

reshard 命令參數(shù)詳解:

reshard    host:port  # 集群內(nèi)任意節(jié)點地址
           --cluster-from arg>  # 源節(jié)點id,逗號分隔
           --cluster-to arg>  # 目標節(jié)點id,只有一個
           --cluster-slots arg>  # 遷移多少個槽
           --cluster-yes  # 確認執(zhí)行reshard
           --cluster-timeout arg>  # 每次 migrate 操作的超時時間,默認 60000ms
           --cluster-pipeline arg>  # 每次批量遷移鍵的數(shù)量,默認 10
           --cluster-replace

將 9001、9002、9003 的槽遷移到 9007,共遷移 4096 個

$ /usr/local/redis/bin/redis-cli --cluster reshard 192.168.11.40:9001
M: 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001
   slots:[0-4095],[4097-5461] (5461 slots) master
   1 additional replica(s)
M: bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d 192.168.11.40:9007
   slots:[4096] (1 slots) master
...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: 8ccdb0963411ebd05ce21952bdd4b7597825afdc
Source node #2: 5786e3237c7fa413ed22465d15be721f95e72cfa
Source node #3: 85ceb9826e8aa003169c46fb4ba115c72002d4f9
Source node #4: done
    Moving slot 0 from 8ccdb0963411ebd05ce21952bdd4b7597825afdc
    ...
    Moving slot 12287 from 85ceb9826e8aa003169c46fb4ba115c72002d4f9
Do you want to proceed with the proposed reshard plan (yes/no)? yes
Moving slot 0 from 192.168.11.40:9001 to 192.168.11.40:9007:
...
Moving slot 12287 from 192.168.11.40:9003 to 192.168.11.40:9007:

查看最終結(jié)果

192.168.11.40:9007> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 master - 0 1620933907753 7 connected 1366-4095 4097-5461
5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620933906733 1 connected 6827-10922
85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620933905000 3 connected 12288-16383
bb1bb0f5f9e0ee67846ba8ec94a38da700e2e80d 192.168.11.40:9007@19007 myself,master - 0 1620933900000 8 connected 0-1365 4096 5462-6826 10923-12287
...

檢查節(jié)點之間槽的均衡性

$ /usr/local/redis/bin/redis-cli --cluster rebalance 192.168.11.40:9001
...
[OK] All 16384 slots covered.
*** No rebalancing needed! All nodes are within the 2.00% threshold.

遷移之后所有主節(jié)點負責的槽數(shù)量差異在 2% 以內(nèi),因此集群節(jié)點數(shù)據(jù)相對均勻,無需調(diào)整

二、集群收縮

1. 遷移槽

執(zhí)行 reshard 三次,將數(shù)據(jù)平均分布到其他三個節(jié)點

2. 忘記節(jié)點

60s 內(nèi)對所有節(jié)點執(zhí)行如下操作:(不建議)

# 執(zhí)行后,會將該節(jié)點加入禁用列表(持續(xù) 60s),不再向其發(fā)送 Gossip 消息
cluster forget {nodeId}

建議使用 redis-cli 的 del-node 忘記節(jié)點:

/usr/local/redis/bin/redis-cli --cluster del-node {host:port} {nodeId}

內(nèi)部偽代碼

def delnode_cluster_cmd(downNode):
    # 下線節(jié)點不允許包含slots
    if downNode.slots.length != 0
        exit 1
    end
    # 向集群內(nèi)節(jié)點發(fā)送cluster forget
    for n in nodes:
        if n.id == downNode.id:
            # 不能對自己做forget操作
            continue;
        # 如果下線節(jié)點有從節(jié)點則把從節(jié)點指向其他主節(jié)點
        if n.replicate  n.replicate.nodeId == downNode.id :
            # 指向擁有最少從節(jié)點的主節(jié)點
            master = get_master_with_least_replicas();
            n.cluster("replicate",master.nodeId);
        #發(fā)送忘記節(jié)點命令
        n.cluster('forget',downNode.id)
    # 節(jié)點關(guān)閉
    downNode.shutdown();

若主從節(jié)點都要下線,先下線從,避免全量復(fù)制

以上就是Redis 集群伸縮原理的詳細內(nèi)容,更多關(guān)于Redis 集群原理的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 基于Docker搭建Redis主從集群的實現(xiàn)
  • Docker上實現(xiàn)Redis集群搭建
  • Redis6.0搭建集群Redis-cluster的方法
  • Redis5之后版本的高可用集群搭建的實現(xiàn)
  • 在K8s上部署Redis集群的方法步驟
  • Redis主從集群切換數(shù)據(jù)丟失的解決方案
  • Redis cluster集群模式的原理解析
  • Redis Cluster集群主從切換的踩坑與填坑
  • 詳解Redis集群搭建的三種方式

標簽:臺州 大慶 北京 江蘇 楊凌 朝陽 果洛 吉安

巨人網(wǎng)絡(luò)通訊聲明:本文標題《深入淺析Redis 集群伸縮原理》,本文關(guān)鍵詞  深入,淺析,Redis,集群,伸縮,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《深入淺析Redis 集群伸縮原理》相關(guān)的同類信息!
  • 本頁收集關(guān)于深入淺析Redis 集群伸縮原理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美一级视频在线观看| 神马香蕉久久| 日韩乱码人妻无码中文字幕久久| 欧美日韩国产一区中文午夜| 99视频一区| 欧美日韩成人一区二区三区| 国产一精品一av一免费爽爽| 我不卡伦不卡影院| 波多野结衣久久精品| www视频免费| 日韩电影免费观看在线观看| 国产精品国产三级国产三级人妇| 欧美性受xxxx免费视频| 性感女国产在线| 中文字幕亚洲乱码熟女1区2区| 亚洲xx在线| 国产三级按摩推拿按摩| 欧美日韩免费不卡视频一区二区三区| 你懂的av在线| 成人黄网18免费观看的网站| 亚洲精品18在线观看| 日韩欧美1区| 一本一道久久a久久精品逆3p| 亚洲大黄网站| 国产精品麻豆久久久| 四虎永久在线精品免费网址| 国产精品高潮呻吟久久av野狼| 7777精品伊人久久久大香线蕉的| 欧美日韩综合一区二区| 另类视频一区二区三区| 国产一区二区av| 日韩久久精品成人| av在线播放一区二区| 国产一级网站视频在线| 欧美精品一区在线观看| 久久精品magnetxturnbtih| av在线免费观看不卡| 卡通欧美亚洲| 精品久久精品| 国产成人一区二| 91蝌蚪视频在线观看| 97在线观看视频| 亚洲区一区二区三区| 999在线观看免费大全电视剧| 欧美另类在线视频| 欧美成人一区二区三区片免费| 亚洲一二三四在线观看| 日本精品久久久久| 在线中文一区| 99久久99久久综合| 久久综合国产精品台湾中文娱乐网| 亚洲欧洲国产综合| 亚洲老妇激情| 一区二区三区电影大全| 日韩在线观看免费高清| 在线黄色国产视频| 成人国产亚洲欧美成人综合网| 亚洲精品第一国产综合野| 亚洲欧美综合图区| 久久五月天色综合| 成人mm视频在线观看| 99久久99久久精品免费看蜜桃| 亚洲国产综合人成综合网站| 午夜dv内射一区二区| wwwxx日本| 久久a级毛片毛片免费观看| 免费看国产精品一二区视频| 波多野结衣在线播放| 中文字幕日本乱码精品影院| 亚洲欧美欧美一区二区三区| 欧美激情国产日韩精品一区18| 一二三四在线观看免费高清中文在线观看| 亚洲熟妇一区二区三区| 一区二区在线观看免费视频| 国产日产亚洲精品系列| 国产丝袜高跟一区| 97国产在线观看| 偷拍视屏一区| 亚洲精品中文字幕乱码三区不卡| 欧美大片网站| 日韩欧美一区二区三区免费看| 欧美日韩免费一区二区三区| 欧美激情 国产精品| 欧美系列一区二区| 在线激情视频| 青青草影院在线观看| 亚洲女同一区二区| 中文字幕日韩三级片| 中文av资源在线| 欧美日韩在线一二三| 97精品人人妻人人| 丝袜美腿一区二区三区动态图| 日韩精品中文字幕在线播放| 亚洲免费视频在线观看| 中文字幕不卡的av| 免费看美女隐私的视频| 三级短视频在线| 乱一区二区三区在线播放| 国产一区二区三区播放| 成年人黄视频网站| 午夜视频在线观看国产| 在线免费看av的网站| 日本人妻丰满熟妇久久久久久| 国产又黄又爽又无遮挡| 麻豆精品国产传媒av| 免费不卡av在线| 中文字幕91爱爱| 国产精品亚洲综合久久| 日韩欧美国产黄色| 日韩在线观看不卡| 日韩精品中午字幕| 2018国产在线| 99re这里只有精品6| 日韩国产精品一区| 国产高清999| 一区二区三区四区精品视频| 最新天堂网www| 精品国产精品国产偷麻豆| 麻豆成人在线看| 亚洲欧美国产日韩中文字幕| 亚洲视频在线观看免费| 亚洲精品成人精品456| 精品少妇人妻av一区二区| 久久蜜桃av一区精品变态类天堂| 欧美成人亚洲高清在线观看| 成人精品小视频| 久久偷看各类女兵18女厕嘘嘘| va婷婷在线免费观看| 亚洲国产精品第一页| 精品国产欧美一区二区五十路| 亚洲精品va| 国产精品一区二区免费不卡| 国产一级片毛片| 香蕉视频官网在线观看日本一区二区| 一区二区高清不卡| 成人欧美在线| 亚洲另类色综合网站| 午夜久久福利影院| 国产精品九九九九| 欧美精品二区三区四区免费看视频| 日本亚洲欧洲色α| 久久一区欧美| 蜜桃视频在线观看一区| 免费成年人高清视频| 992tv免费直播在线观看| 日本黄色大片在线观看| 婷婷五月在线视频| 国产成人亚洲欧美电影| 国产精品久久久久久久久久| 免费在线黄色片| 国产精品久久久久久久久| www国产成人免费观看视频 深夜成人网| 亚洲一区二区三区xxx视频| 免费日本一区二区三区视频| 欧美精品电影在线| 欧美第一精品| 国产精品video| 亚洲一级不卡视频| 蘑菇福利视频一区播放| 亚洲人成网站色在线观看| 一道本一区二区三区| 青花影视在线观看免费高清| 亚洲乱码一区二区三区三上悠亚| 三上悠亚在线观看视频| 手机在线成人av| 天天骑夜夜操| 中文字幕在线视频第一页| 亚洲影院天堂中文av色| 麻豆传媒在线免费看| 麻豆av在线播放| 亚洲一级二级| 亚洲精品一区久久久久久| 91精品综合久久久久久久久久久| 国产成人午夜电影网| 国产三级在线看| 私人影视中文字幕| 久久综合伊人77777| 高清不卡一区二区| 成人欧美大片| 亚洲精品国产一区二区| 国产淫片在线观看| 99国产精品欲| 亚洲天堂免费电影| 天堂资源在线亚洲视频| 中文字幕av一区中文字幕天堂| 精品国产乱码久久久久久浪潮| 欧美国产视频一区二区| 午夜激情福利网| 欧美xxxx14xxxxx性爽| 国内爆初菊对白视频| 超清av在线| 国产精品丝袜一区二区| 精品免费国产二区三区| 深夜福利视频在线免费观看| 97视频国产在线| 免费成人看片网址| 杨幂一区二区三区免费看视频| 亚洲国产综合人成综合网站| 亚洲成a人片77777精品| 国内精品视频在线| av在线网站免费观看| 懂色av影视一区二区三区| 精品69视频一区二区三区Q| 欧美精品一区二区三区中文字幕| 91丨porny丨国产入口| 高潮毛片又色又爽免费| 精品无码国产一区二区三区av| 伊人亚洲福利一区二区三区| 国产成人久久久精品一区| 黄色片在线免费观看| 成人久久视频在线观看| 网站免费在线观看| 国产精品国产精品国产专区| 91精品入口蜜桃| 亚洲欧洲成视频免费观看| 99精品一区二区三区的区别| 日韩午夜小视频| 国产精品福利一区二区三区| 日本三级视频在线播放| 亚洲国产精品成人va在线观看| 久久精品99| 一本色道婷婷久久欧美| 精品手机在线视频| 精品国产精品自拍| www.av中文字幕| 456国产精品| 一二三四在线观看免费高清中文在线观看| 国产精品一二三在线| 亚洲综合网站| 在线观看亚洲a| 欧美激情亚洲视频| 国产小视频在线高清播放| 美女在线不卡| 中文永久免费观看| bt天堂新版中文在线地址| 久久久www成人免费毛片| 九九视频精品在线观看| 免费黄色欧美视频| 亚洲一区日韩精品中文字幕| 国产福利久久精品| 成年网站在线视频网站| 欧美黑人性猛交xxx| 性欧美又大又长又硬| 欧美日韩高清一区| 日韩a级在线观看| 久久婷婷国产麻豆91| 久久久久久毛片| 中文字幕人妻熟女在线| 国产精品美女久久福利网站| 欧美三片在线视频观看| 久久国产精品免费| 日本亚洲欧美美色| 国产精品无码电影| a视频v在线| 欧美激情在线播放| 亚洲精品女av网站| 好吊视频一区二区三区| 国产综合久久久| 久久综合色综合88| 国产精品直播网红| 91精品办公室少妇高潮对白| 国产真实乱对白精彩久久| 一个人免费观看视频www在线播放| 午夜精品久久久久99蜜桃最新版| 亚洲大胆人体大胆做受1| 国产精品久久三| av激情综合网| 成人av在线播放网站| 老牛国产精品一区的观看方式| 中文字幕成人| 中国女人内谢69xxx视频| 成人网免费视频| 97久久精品在线| 免费看成人人体视频| 日本大片在线观看| 国产精品一二三区视频| 亚洲另类欧美日韩| 岛国av在线免费| 国产精品久久久久久福利一牛影视| 欧美极品jizzhd欧美| 992tv快乐视频| 午夜精品久久久久99热蜜桃导演| 懂色av粉嫩av蜜臀av一区二区三区| 欧美激情一区二区三区在线视频观看| 欧美精品自拍| 五月综合激情婷婷六月色窝| 91久久国产综合久久91精品网站| 久久亚洲综合色一区二区三区| 欧美四级剧情无删版影片| 日韩理论片在线| 天堂www中文在线资源| 尤物在线网址| 欧美激情伊人电影| 俺去了亚洲欧美日韩| 噼里啪啦国语在线观看免费版高清版| 欧美一级在线免费观看| 欧美暴力喷水在线| 免费在线一级视频| www.亚洲| 国产视频一区三区| 日韩电影在线观看网站| 爱爱的免费视频| 手机av在线免费观看| 国产精品亚洲综合一区在线观看| 日本久久高清视频| 免费中文字幕日韩欧美| 久久夜夜久久| 欧美一区二区三区在线视频| 国产精品美女av| 欧美日韩中文字幕综合视频| 国产成人精品白浆久久69| 人妻少妇精品视频一区二区三区| 日韩成人免费| 国产精品乱子伦| 欧美在线视频不卡| 影音先锋欧美资源| 中国老头性行为xxxx| 高清av一区二区| 天天色天天射天天综合网| 国产精品网曝门| 国产精品va无码一区二区| 亚洲成人av在线播放| chinesegaysextube| 国产又黄又猛又粗| 亚洲综合免费视频| 欧美专区一区二区三区| 国产成人在线视频网址| 免费一级特黄3大片视频|