日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

非常适合新手的redis cluster搭建过程

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非常适合新手的redis cluster搭建过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis集群演進過程

  • Redis單節點

  • 主從復制:
    復制主要實現了數據的多機備份,以及對于讀操作的負載均衡和簡單的故障恢復。
    故障恢復無法自動化;寫操作無法負載均衡;存儲能力受到單機的限制。

  • 哨兵(Sentinel):
    在復制的基礎上,哨兵實現了自動化的故障恢復。
    缺陷是寫操作無法負載均衡;存儲能力受到單機的限制。

  • Cluster集群:
    通過分片集群,Redis解決了寫操作無法負載均衡,以及存儲能力受到單機限制的問題,而且也具有故障遷移(主從切換)的功能,實現了較為完善的高可用方案。

  • 科普特性

    請對照上面的架構圖

    • redis cluster不支持單機版本的16個默認數據庫,僅有0數據庫, select命令被禁用

    • key空間被劃分為16384個哈希槽,每個master節點負責處理16384個哈希槽的子集
      當集群沒有發生重配,集群是穩定的

    • 每個master都可能有1個或多個slave節點, 這些節點將在網絡分區或者發生故障時嘗試替代master節點, 同時這些slave節點也可用于支撐大規模的讀操作

    • 將key映射到哈希操作的算法是hash_slot = CRC16(16)mod 16384

    例外:key hash tags:
    {user1000}.following和{user1000}.followers兩個鍵值將被放在一個哈希槽,因為只有子字符串user1000將被用來計算哈希槽。

    • Cluster bus:每個redis節點都有一個用于集群節點間通信的tcp端口(在原客戶端訪問端口之上加上1000),

    • 節點使用gossip協議和配置更新機制,以避免在正常情況下在節點之間交換過多的消息,因此交換的消息數量不是指數級的

    • redis客戶端可以向集群中每個節點發送查詢(包括從節點),節點將會分析查詢key,找到負責對應哈希槽的節點。

    當前節點能處理最好,不能處理將返回 MOVED error、哈希槽、能處理的節點,客戶端將自行定向到特定新節點查詢。

    • 一般情況下slave節點會將客戶端請求重定向到負責對應哈希槽的master節點,但是為了支撐大規模讀,可以給slave節點開啟 READONLY

    搭建Redis Cluster

    本文使用一個單物理機,搭建偽Redis Cluster(3主3從)

  • 創建redis-cluster目錄,存放集群

  • 下載最新版redis-6.2.4, 將bin目錄下的可執行文件、redis.conf拷貝到同級目錄redis01

  • 修改redis01 目錄下redis.conf配置:

    • port 7001

    • cluster-enabled? yes ? ? ? ?// 之前被注釋

    • 將redis01拷貝多個,形成redis02, redis02, redis04, redis05,redis06 ,
      修改對應redis.conf port為7002 7003 7004 7005 7006

    • 啟動6個redis節點,使用start.sh腳本( chmod +x start.sh)

      ?每個啟動命令后面的& 表示后臺啟動

    • cd?redis01 ./redis-server?redis.conf?& cd?.. cd?redis02 ./redis-server?redis.conf??& cd?.. cd?redis03 ./redis-server?redis.conf??& cd?.. cd?redis04 ./redis-server?redis.conf?& cd?.. cd?redis05 ./redis-server?redis.conf?& cd?.. cd?redis06 ./redis-server?redis.conf?& cd?..
    • 準備組建redis cluster

    • redis 5+可以使用redis-cli 特定命令來組建集群;redis3,4使用redis-trib.rb來協助組建集群。

      使用redis-cli --cluster命令創建由6個節點組成的redis cluser,其中cluster-replicas 1將為每個master節點創建slave節點? (不帶上這個cluster-replicas,會創建了6個master節點組成的redis cluster).

      redis-cli?--cluster?create?127.0.0.1:7001?\ 127.0.0.1:7002?127.0.0.1:7003?127.0.0.1:7004?127.0.0.1:7005???127.0.0.1:7006?\ --cluster-replicas?1
    • 驗證集群狀態
      使用redis-cli -p 7001 -c登錄節點
      使用cluster nodes查看節點狀態

    • ? ? ? 以上操作搭建了由3master 3Slave形成的高可用redis cluster,
      ? ? ?節點角色由自動生成的nodes.conf文件維護

    • 客戶端實操


    • 如果覺得以上過程很繁瑣,Redis官方提供了另外的工具,在utils目錄create-cluster腳本。

    • create-cluster start

    • create-cluster create
      就會創建3 mater 3 slave組成的redis cluster(首節點端口從30001 開始),這樣前置知識可能沒有按部就班清晰。

    • 總結

      以上就是Redis Cluster科普級別的知識, 幫助大家快速全面了解Redis Cluster特性, 快速搭建Redis Cluster。
      好記性不如爛筆頭,倒騰一次,記錄一次。

    總結

    以上是生活随笔為你收集整理的非常适合新手的redis cluster搭建过程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。