<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      中間件一鍵部署腳本:redis主從+哨兵模式

      1. Redis 介紹及部署模式

      Redis 是一個高性能的鍵值存儲數據庫,廣泛用于緩存、消息隊列等場景。根據應用需求,Redis 可采用以下幾種部署模式:

      1. 單機模式:所有數據存儲在一個 Redis 實例中,適用于小規模、低并發的業務場景。
      2. 主從模式(Master-Slave):通過 slaveof 機制,主節點(Master)負責讀寫操作,從節點(Slave)同步主節點數據,只提供讀操作,提高讀性能。
      3. 哨兵模式(Sentinel):在主從模式的基礎上引入 Redis Sentinel(哨兵),監控 Redis 主節點的運行狀態,并在主節點故障時自動完成主從切換,保障高可用性。
      4. 集群模式(Cluster):多個 Redis 節點分片存儲數據,并支持自動故障轉移,適用于大規模分布式場景。

      2. Redis 哨兵模式

      Redis 哨兵模式在主從模式的基礎上增加了高可用能力:

      • 自動故障轉移:當主節點宕機時,哨兵會自動選舉新的主節點,并通知所有從節點重新同步數據。
      • 監控:實時檢測 Redis 節點狀態。
      • 通知:當主節點發生變化時,哨兵可以通知客戶端。

      3. Redis 哨兵模式一鍵部署腳本

      為了簡化 Redis 哨兵模式的部署,本文提供了一個 一鍵安裝腳本,能夠自動完成:

      • 解析參數,確定 Master 和 Slave 節點
      • 配置 Master 和 Slave 節點
      • 部署 Redis Server 并啟動
      • 部署 Redis Sentinel 并啟動
      • 檢查運行狀態

      腳本運行方式

      ./deploy_redis_sentinel.sh --master=1.1.1.1 --nodes=2.2.2.2,3.3.3.3

      其中:

      • --master=<IP> 指定 Redis 主節點 IP
      • --nodes=<IP1>,<IP2> 指定 Redis 從節點列表(逗號分隔)

      腳本邏輯

      • 解析傳入的 masternodes 參數
      • 判斷當前服務器 IP 是否匹配 masternodes
      • 部署 Redis MasterSentinel 或 部署 Redis Slave 和 Sentinel
      • 輸出部署進程信息,確保 Redis 及 Sentinel 運行正常

      腳本內容:cat deploy_redis_sentinel.sh

      #!/bin/bash
      #部署redis 哨兵模式
      
      #獲取節點信息
      
      master=""
      nodes=""
      currentdir=""
      
      tar_name=$(ls redis-bin*)
      if [[ -z "${tar_name}" ]]; then
          echo "未找到 redis 二進制安裝包"
          exit 1
      fi
      
      #解析參數
      for arg in "$@"; do
        case "$arg" in 
         --master=* )
          master="${arg#*=}"
          shift
          ;;
          --nodes=* )
          nodes="${arg#*=}"
          shift
          ;;
          *)
          echo "Unknown option: $arg"
          exit 1
          ;;
        esac
      done
      
      # 若未指定 master 和 nodes,則退出
      if [ -z "$master" ] || [ -z "$nodes" ]; then
       echo "Usage: $0 --master=<node1> --nodes=<node2>,<node3>"
        exit 1
      fi
      
      #將 nodes 逗號分隔轉換為數組
      IFS=',' read -r -a nodes_array <<< "$nodes"
      
      master_deployment(){
      tar -xzf $tar_name && mv redis-bin redis_bin_cluster
      cd redis_bin_cluster
      currentdir=$(pwd)
      #master配置文件
      cat >redis.conf<<EOF
      bind 0.0.0.0
      port 6379
      pidfile $currentdir/6379.pid
      logfile $currentdir/6379.log
      dir $currentdir
      requirepass Wiseco#2024
      masterauth Wiseco#2024
      slave-serve-stale-data no
      repl-disable-tcp-nodelay no
      daemonize yes
      maxmemory 3221225472
      appendonly yes
      appendfilename "appendonly.aof"
      protected-mode no
      EOF
      
      #啟動redis-server
      echo "redis-server staring......"
      $currentdir/redis-server $currentdir/redis.conf
      }
      
      slave_deployment(){
      tar -xzf $tar_name && mv redis-bin redis_bin_cluster
      cd redis_bin_cluster
      currentdir=$(pwd)
      #slave配置文件
      cat >redis.conf<<EOF
      bind 0.0.0.0
      port 6379
      pidfile $currentdir/6379.pid
      logfile $currentdir/6379.log
      dir $currentdir
      requirepass Wiseco#2024
      slave-serve-stale-data no
      repl-disable-tcp-nodelay no
      slaveof $master 6379
      masterauth Wiseco#2024
      daemonize yes
      maxmemory 3221225472
      appendonly yes
      appendfilename "appendonly.aof"
      protected-mode no
      EOF
      
      #啟動redis-server
      echo "redis-server staring......"
      $currentdir/redis-server $currentdir/redis.conf
      }
      
      sentinel_deployment(){
      cd $currentdir
      
      # sentinel配置文件
      cat >redis-sentinel.conf<<EOF
      bind 0.0.0.0
      port 26379
      logfile $currentdir/sentinel.log
      pidfile $currentdir/sentinel.pid
      daemonize yes
      sentinel monitor mymaster $master 6379 2
      sentinel auth-pass mymaster Wiseco#2024
      sentinel down-after-milliseconds mymaster 10000
      sentinel parallel-syncs mymaster 2
      sentinel failover-timeout mymaster 180000
      EOF
      
      # 啟動 sentinel
      echo "redis-sentinel staring........"
      $currentdir/redis-sentinel $currentdir/redis-sentinel.conf
      
      }
      
      #判斷當前服務器是否在節點中
      ##獲取當前節點的 IP(多個 IP 會用空格分隔)
      current_ip_list=$(hostname -I)
      
      #判斷是不是master節點
      is_master=$(echo "$current_ip_list"|tr ' ' '\n' |grep -Fxf - <(echo "$master"|tr ' ' '\n'))
      is_slave=$(echo "$current_ip_list"|tr ' ' '\n' |grep -Fxf - <(echo "${nodes_array[@]}"|tr ' ' '\n'))
      
      
      if [[ -n $is_master ]]; then
          echo "the server is master node, ip $is_master"
          master_deployment
          sentinel_deployment
      
      elif [[ -n $is_slave ]]; then
          echo "the server is slave node, ip $is_slave"
          slave_deployment
          sentinel_deployment
      else
          echo "當前服務器沒有匹配的節點IP, 退出腳本"
          exit 1
      fi
      
      echo "查看進程..."
      ps -aef|grep redis |grep -v 'grep'| grep -v "$0"
      echo "當前節點部署完成"
      

        

      posted @ 2025-02-14 14:24  瘦阿瘦  閱讀(125)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲av日韩在线资源| 国产亚洲精品中文字幕| 狠狠人妻久久久久久综合蜜桃| 国产一区二区三区不卡观| 全免费A级毛片免费看无码| 另类 专区 欧美 制服| 亚洲国产日韩a在线亚洲| 色777狠狠狠综合| 成人av午夜在线观看| 国产精品高清国产三级囯产AV| 色偷偷www.8888在线观看| av无码精品一区二区三区四区| 亚洲精品色哟哟一区二区 | 国产成人久久精品一区二区| 在线视频不卡在线亚洲| 成人亚欧欧美激情在线观看| 亚洲成av人最新无码不卡短片| 麻豆国产va免费精品高清在线| 一区二区三区鲁丝不卡| 久久国内精品一国内精品| 成人AV专区精品无码国产| 久久国产乱子伦免费精品无码| 国产亚洲精品日韩av在| 精品国产一区二区三区大 | 亚洲宅男精品一区在线观看| 人妻中文字幕精品系列| 2021久久精品国产99国产精品| 久久一区二区三区黄色片| 久久综合97丁香色香蕉| 国产成人精品午夜福利在线观看 | 国产不卡一区二区四区| 久久亚洲精品人成综合网| 久久97人人超人人超碰超国产| 在线精品国产中文字幕| 亚洲最大天堂在线看视频| 亚洲理论电影在线观看| 亚洲综合精品第一页| 国产亚洲av产精品亚洲| 国产毛片基地| 国产360激情盗摄全集| 亚洲天堂一区二区成人在线|