<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        RedisCluster簡單配置與動態擴容

        來源:懂視網 責編:小采 時間:2020-11-09 13:03:47
        文檔

        RedisCluster簡單配置與動態擴容

        RedisCluster簡單配置與動態擴容:Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發現似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節點才能建立一個集群, 這規格是向黨支部看齊么... 至少 3 個節點這個還是略坑, 而且不能自動添加節點 (難道要
        推薦度:
        導讀RedisCluster簡單配置與動態擴容:Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發現似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節點才能建立一個集群, 這規格是向黨支部看齊么... 至少 3 個節點這個還是略坑, 而且不能自動添加節點 (難道要

        Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發現似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節點才能建立一個集群, 這規格是向黨支部看齊么... 至少 3 個節點這個還是略坑, 而且不能自動添加節點 (難道要我啟

        Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發現似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節點才能建立一個集群, 這規格是向黨支部看齊么...
        至少 3 個節點這個還是略坑, 而且不能自動添加節點 (難道要我啟動個 py 的 subprocess 去掉 ruby?), 于是去看看源代碼, 驚訝地發現, 原來限制 3 個節點起步的是 ruby 腳本, 而且調集群加節點平衡負載其實都可以用 redis 命令來完成. 好吧, 那我自己來連 socket 搞總行了吧.
        結果一番折騰還真的可行的樣子, 于是有了這篇文章和一個簡單的工具. 那么首先說說怎么用 redis-cli 來做這些事情.

        如何在 redis-cli 手動啟動集群呢, 請隨意連上一個空的支持集群模式的節點, 然后執行

        cluster addslots 0 1 2 ... 16383

        千萬不要誤會了, 中間那個 ... 可是要實打實地從頭寫到尾的哦. 所以如果可以的話, 手動寫個腳本來干這事情吧.
        不過也可以略過這些步驟, 反正下面看看例子就行, 最后會給出一個 Python 工具來做這些.
        接下來的例子中, 假定已經開好了一個集群, 共有 3 個 master 節點. 要在控制臺檢視這些節點, 請用 redis-cli 隨意連上其中一個, 并執行

        cluster nodes

        輸出

        e7f4fcc0dd003fc107333a4132a471ad306d5513 127.0.0.1:8001 master - 0 1414033928009 3 connected 0-2729 8192-10921
        bd239f7dbeaba9541586a708484cdce0ca99aba5 127.0.0.1:8000 master - 0 1414033929011 2 connected 2730-8191
        787e06e9d96e6a9a3d02c7f3ec14e243882293e9 127.0.0.1:7999 myself,master - 0 0 1 connected 10922-16383

        以上每一行是一個節點信息, 按空格分隔的域依次表示
      1. 節點 ID
      2. 節點地址
      3. 節點角色 (master / slave), 如果是當前節點, 還會有個 myself
      4. 對于 slave 而言, 其 master 節點的 ID
      5. 最后一次 ping 時間戳
      6. 最后一次 pong 時間戳
      7. 節點順序號
      8. 節點連接狀態
      9. 之后的所有 : 節點所配給的槽位, 如果槽位連續, 就以 BEGIN-END 表示, 不連續的由空格隔開
      10. 如果要向集群新增一個節點, 需要用 redis-cli 連上這個新節點, 調用一次 cluster meet 命令. 如

        cluster meet 127.0.0.1 7999

        后面參數是已經在集群中的節點中任意一個節點的地址及端口. 然后再來一次

        e7f4fcc0dd003fc107333a4132a471ad306d5513 127.0.0.1:8001 master - 0 1414034715486 3 connected 0-2729 8192-10921
        bd239f7dbeaba9541586a708484cdce0ca99aba5 127.0.0.1:8000 master - 0 1414034714983 2 connected 2730-8191
        787e06e9d96e6a9a3d02c7f3ec14e243882293e9 127.0.0.1:7999 master - 0 1414034714482 1 connected 10922-16383
        a0fa298711f5da94cb8acc0ed913970f7b00c7af 127.0.0.1:8010 myself,master - 0 0 0 connected

        就會發現這個節點已經加入集群, 但是沒有被分配任何槽位. 現在得從原來幾個節點搬運一些過來. 在執行這個操作前, 為了測試, 先向集群里扔一個值進去

        set "foo14308" "bar"

        這個鍵對應的槽位是 7 號. 等會兒就嘗試將 7 號槽移動到新節點上.

        第一步, 鎖定槽位. 這個操作需要分開進行. 首先用 redis-cli 連上新節點 (上述例子中端口 8010 的那個) 并執行

        cluster setslot 7 importing e7f4fcc0dd003fc107333a4132a471ad306d5513

        這表示即將從 ID 為 e7f4fcc0dd003fc107333a4132a471ad306d5513 的節點 (也就是 7 號槽位的所有者) 導入 7 號槽.
        接下來連上 7 號槽位的所有者所在的 8001 端口, 執行

        cluster setslot 7 migrating a0fa298711f5da94cb8acc0ed913970f7b00c7af

        再執行

        cluster getkeysinslot 7 10

        查看 7 號槽位的全部鍵 (參數 7 表示槽位, 參數 10 表示數量). 這樣 redis 會回顯剛才放進去的 "foo14308".
        現在開始手動遷移這些鍵. 在 8001 端口的客戶端上執行

        migrate 127.0.0.1 8010 foo14308 0 15000

        (最后兩個參數, 其實我也不知道什么意思, 從 官方代碼里 抄過來的)
        因為只有這一個鍵, 所以現在整個槽的遷移已經完成了, 需要告知整個集群 7 號槽位已經被新節點承包了, 官方源碼里 這里進行了廣播, 在命令行里的話似乎需要逐個連接節點, 執行以下命令

        cluster setslot 7 node a0fa298711f5da94cb8acc0ed913970f7b00c7af

        搞完就好了.

        在知道以上這些的基礎上, 做了一個簡單的集群小工具, 能夠在單節點上啟動集群, 以及將一個新節點加入集群中并且自動平衡槽位. 此 Python 工具已加入 GitHub, 歡迎大家拍磚.

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        RedisCluster簡單配置與動態擴容

        RedisCluster簡單配置與動態擴容:Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發現似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節點才能建立一個集群, 這規格是向黨支部看齊么... 至少 3 個節點這個還是略坑, 而且不能自動添加節點 (難道要
        推薦度:
        標簽: 動態 簡單 擴容
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 24小时日本韩国高清免费| 污视频网站免费观看| 91精品视频在线免费观看| 亚洲亚洲人成综合网络| 国产精品极品美女自在线观看免费| 全部一级一级毛片免费看| 免费国产综合视频在线看| 免费亚洲视频在线观看| 在线观看免费亚洲| 免费观看四虎精品成人| 国产亚洲精品看片在线观看| 国产做国产爱免费视频| 亚洲AV无码一区二区乱子伦| 亚洲免费在线观看视频| 亚洲视频一区二区三区四区| 我要看免费的毛片| 无套内谢孕妇毛片免费看看| 亚洲级αV无码毛片久久精品| 国产精品免费一区二区三区四区| 久久精品国产亚洲AV麻豆网站| 亚洲综合免费视频| 亚洲AV无码专区在线厂| 国产亚洲成人久久| 久久一本岛在免费线观看2020 | 亚洲国产成人a精品不卡在线| caoporn国产精品免费| 亚洲国产精品一区二区久久| 国产成人精品久久免费动漫| 激情小说亚洲色图| 亚洲精品无码鲁网中文电影| 2021在线观看视频精品免费| 亚洲av中文无码乱人伦在线观看| 亚洲国产精品一区二区第四页| 久久国产乱子伦精品免费不卡 | 亚洲A∨精品一区二区三区下载| 免费大片在线观看网站| 精品亚洲永久免费精品| 亚洲AV色吊丝无码| 精品亚洲一区二区三区在线观看 | 亚洲一区二区三区写真| 亚洲中文字幕久久精品无码喷水|