Linux搭建Redis三主三從集羣

如何使用Redis搭建分佈式集羣Cent0S7

  1. Redis的主從複製

    在Redis4.0後擯棄了 ,因爲在主機故障時從機不能自動替換主機

  2. Redis中的哨兵模式

    解決了主從複製中的自動故障轉移的問題,但是沒有解決單節點壓力問題

  3. Redis的集羣

    同時解決了上述問題,redis3.0後開始支持集羣的搭建

  4. Redis的集羣細節

    1. 所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬.

    2. 節點的fail是通過集羣中超過半數的節點檢測失效時才生效.

    3. 客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集羣所有節點,連接集羣中任何一個可用節點即可

    4. redis-cluster把所有的物理節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value

  5. Redis的容錯細節

    1. 領着選舉過程是集羣中所有master參與,如果半數以上master節點與master節點通信超過(cluster-node-timeout),認爲當前master節點掛掉

    2. 什麼時候整個集羣不可用(cluster_state:fail),當集羣不可用時,所有對集羣的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)錯誤

  6. 注意

    1. ​ 判斷一個是集羣中的節點是否可用,是集羣中的所用主節點選舉過程,如果半數以上的節點認爲當前節點掛掉,那麼當前節點就是掛掉了,所以搭建redis集羣時建議節點數最好爲奇數.

    2. 搭建集羣至少需要三個主節點,三個從節點,至少需要6個節點

  7. redis集羣的開發步驟:

    1. 搭建ruby環境 在線安裝

      yum install ruby

    2. 引入redis集羣的支持 redis-3.2.1.gem

      安裝 gem install redis-3.2.1.gem

    3. 模擬集羣環境 在一臺虛擬機上啓動七臺redis

      修改端口號

    4. 在redis.conf文件中修改如下配置

      a)cluster-enabled yes //開啓集羣模式

      b)cluster-config-file nodes-.conf //集羣節點配置文件

      c)cluster-node-timeout 5000 //集羣節點超時時間

      d)appendonly yes //開啓AOF持久化

    5. 準備七個文件夾 裏面分別放置redis.conf文件

      例如:
      在這裏插入圖片描述

      每個redis.conf都要修改端口號和第4步的配置信息

    6. 然後將七個文件夾上傳到redis 並移動到redis文件夾裏和bin目錄同級

    7. 然後分別啓動六個redis服務

      執行 ./redis-server …/7000/redis.conf

      執行 ./redis-server …/7001/redis.conf

      執行 ./redis-server …/7006/redis.conf

    8. 進入redis的源碼包 進入src目錄 將redis-trib.rb 拷貝到/usr/redis/bin目錄下(每個人放置的位置都不一樣 找到就行)

      執行 cp redis-trib.rb /usr/redis/bin/

    9. 1一個節點一個從機 到bin目錄下 執行 下面的命令 192.168.56.208 是我的網卡IP

    ./redis-trib.rb create --replicas 1 192.168.56.208:7000 192.168.56.208:7001 192.168.56.208:7002 192.168.56.208:7003 192.168.56.208:7004 192.168.56.208:7005

    1. 查看接羣節點的狀態 隨意連接一個節點 測試

      執行./redis-trib.rb check 192.168.56.208:7000

    2. 集羣節點的操作

      1. 給集羣添加一個主節點

        ./redis-trib.rb add-node 192.168.56.208:7006 192.168.56.208:7005

      2. 向集羣中添加副本節點

        ./redis-trib.rb add-node-slave 192.168.56.208:7006 192.168.56.208:7000

      3. 從集羣中刪除副本節點

        ./redis-trib.rb del-node 192.168.56.208:7006

      4. 重新分片 (重新分配slot hash槽)

        ./redis-trib.rb reshard 192.168.56.208:7000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章