操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    . Redis 單機搭建(以 6.0.6 版本為例)


    1. 安裝 gcc 套裝。

    yum install cpp
    yum install binutils
    yum install glibc
    yum install glibc-kernheaders
    yum install glibc-common
    yum install glibc-devel
    yum install gcc
    yum install make

    2. 升級 gcc。

    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    scl enable devtoolset-9 bash

    3. 使 scl 長期有效。

    echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

    4. 下載redis。

    wget http://download.redis.io/releases/redis-6.0.6.tar.gz

    5. 解壓。

    tar vxf redis-6.0.6.tar.gz

    6. 編譯,安裝。

    cd redis-6.0.6/
    make
    make PREFIX=/usr/local/redis install

    7. 創建配置文件、數據目錄,并且將配置文件復制到目錄中。

    mkdir /usr/local/redis/conf
    mkdir /usr/local/redis/data
    cp ${REDIS_SRC_HOME}/redis.conf /usr/local/redis/conf/

    8. 修改配置文件conf/redis.conf。

    • 修改其中對應的內容。
    # 后臺啟動的意思
    daemonize yes 
    # IP綁定,redis不建議對公網開放,直接綁定 0.0.0.0 沒毛病
    bind 0.0.0.0
    # redis數據文件存放的目錄
    dir /usr/local/redis/data
    # 開啟AOF
    appendonly yes

    9. 啟動 redis。

    cd /usr/local/redis
    ./bin/redis-server ./conf/redis.conf

    10. 測試。

    ./bin/redis-cli
    • 也可以通過客戶端連接。

    2. Redis 哨兵高可用搭建


    目前為了方便演示,在一臺機器上以不同的端口啟動 3 個服務。

    進行之前,先進行單節點上的前 8 個步驟。

    1. 復制出 3 份配置文件。

    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6380.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6381.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6382.conf

    2. 分別修改 3 個文件redis-6380.conf、redis-6381.conf、redis-6382.conf,修改其中對應的端口及 pid 對應的保存文件(注意:三個文件都需要修改)。

    # 端口號(如果同一臺服務器上啟動,注意要修改為不同的端口)
    port 6380
    # 這個文件會自動生成(如果同一臺服務器上啟動,注意要修改為不同的端口)
    pidfile /var/run/redis_6380.pid

    3. 啟動 3 個 redis。

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6380.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6381.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6382.conf

    4. 配置為 1 主 2 從

    /usr/local/redis/bin/redis-cli -p 6381 slaveof 127.0.0.1 6380
    /usr/local/redis/bin/redis-cli -p 6382 slaveof 127.0.0.1 6380

    5. 檢查集群。

    /usr/local/redis/bin/redis-cli -p 6380 info Replication

    6. 準備哨兵配置文件。

    cp ${REDIS_SRC_HOME}/sentinel.conf /usr/local/redis/conf/
    
    cp /usr/local/redis/conf/sentinel.conf /usr/local/redis/conf/sentinel-26380.conf
    cp /usr/local/redis/conf/sentinel.conf /usr/local/redis/conf/sentinel-26381.conf
    cp /usr/local/redis/conf/sentinel.conf /usr/local/redis/conf/sentinel-26382.conf

    7. 分別修改 3 個文件sentinel-26380.conf、sentinel-26381.conf、sentinel-26382.conf(注意:三個文件都需要修改)。

    # 綁定IP
    bind 0.0.0.0
    # 后臺運行
    daemonize yes
    # 默認yes,沒指定密碼或者指定IP的情況下,外網無法訪問
    protected-mode no
    # 哨兵的端口,客戶端通過這個端口來發現redis
    port 26380
    # 這個文件會自動生成(如果同一臺服務器上啟動,注意要修改為不同的端口)
    pidfile /var/run/redis-sentinel-26380.pid
    # sentinel監控的master的名字叫做mymaster,初始地址為 127.0.0.1 6380,2代表兩個及以上哨兵認定為死亡,才認為是真的死亡
    sentinel monitor mymaster 127.0.0.1 6380 2

    8. 啟動哨兵集群。

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26380.conf --sentinel
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26381.conf --sentinel
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26382.conf --sentinel

    9. 檢測。

    • 停掉 master 進程,可以看到,會從其他兩臺 slave 中選擇一臺,變成 master。

    3. Redis 集群搭建


    目前為了方便演示,在一臺機器上以不同的端口啟動 6 個服務。

    進行之前,先進行單節點上的前 8 個步驟。

    1. 集群搭建

    1. 準備 6 份配置文件。

    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6381.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6382.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6383.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6384.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6385.conf
    cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6386.conf

    2. 分別修改redis-6381.conf、redis-6382.conf、redis-6383.conf、redis-6384.conf、redis-6385.conf、redis-6386.conf文件中的以下內容。

    # 端口號(如果同一臺服務器上啟動,注意要修改為不同的端口)
    port 6381
    # 開啟集群
    cluster-enabled yes
    # 會自動生成在上面配置的dir目錄下(如果同一臺服務器上啟動,注意要修改為不同的端口)
    cluster-config-file nodes-6381.conf
    cluster-node-timeout 5000
    # 這個文件會自動生成(如果同一臺服務器上啟動,注意要修改為不同的端口)
    pidfile /var/run/redis_6381.pid 
    • 注意:假如設置 requirepass 的話,同時要設置 masterpass

    5. 啟動 6 個 redis 實例。

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6381.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6382.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6383.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6384.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6385.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6386.conf

    6. 創建 cluster。

    /usr/local/redis/bin/redis-cli --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1

    7. 集群檢驗和測試。

    # 檢查集群,查看所有節點信息
    /usr/local/redis/bin/redis-cli -c -h 127.0.0.1 -p 6381 cluster nodes
    
    # 執行后的信息(節點id ip+端口 角色 masterid 處理的ping數量 最后一個pong時間 節點配置版本 節點連接狀態 slot槽分配情況)
    386bfa4ad82ecf67800fb957899e6c0621cb73a6 127.0.0.1:6386@16386 slave 5352c77a1245f67f89bfaeb47caa04eb534e6724 0 1597911585458 1 connected
    21a8ab725f458901e2d23781a9757b8ada023af1 127.0.0.1:6385@16385 slave 103e8326a6d583064a4d4448d285343536490659 0 1597911586000 3 connected
    5352c77a1245f67f89bfaeb47caa04eb534e6724 127.0.0.1:6381@16381 myself,master - 0 1597911583000 1 connected 0-5460
    103e8326a6d583064a4d4448d285343536490659 127.0.0.1:6383@16383 master - 0 1597911585052 3 connected 10923-16383
    2d40bdd3bc9b01d67362110217123debb6f780cf 127.0.0.1:6384@16384 slave 2cd4da5b1a6d361216f620a21ec4e50da21a2e8a 0 1597911586582 2 connected
    2cd4da5b1a6d361216f620a21ec4e50da21a2e8a 127.0.0.1:6382@16382 master - 0 1597911586479 2 connected 5461-10922
    
    # 測試 Redis Cluster 的一種簡單方法是使用 redis-cli 命令行實用程序。
    # -c 是支持cluster重定向。
    /usr/local/redis/bin/redis-cli -c -h 127.0.0.1 -p 6381
    # 然后執行一些命令,例如:
    > set a 1
    
    # 查看一個 key a 屬于哪一個槽位
    > cluster keyslot 

    2. 集群 slot 數量整理 reshard。

    • /usr/local/redis/bin/redis-cli --cluster help 可以查看所有這個命令和子命令的幫助信息。
    • 默認是 master 平均分了 0-16383 的所有虛擬 slot??梢赃M行調整,部分節點放多一點 slot (槽或者位置)。
    /usr/local/redis/bin/redis-cli --cluster reshard <host>:<port> --cluster-from <node-id> --cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes
    • 重新檢查集群。
    /usr/local/redis/bin/redis-cli --cluster check 127.0.0.1:6381

    3. 測試自動故障轉移。

    • cluster 集群不保證數據一致,數據也可能丟失。
    • 首先是運行客戶端不斷地寫入或讀取數據,以便能夠發現問題。
    • 然后是模擬節點故障:找一個主節點關閉,主從故障切換的過程中,這個時間段的操作,客戶端而言,只能是失敗。
    • 官方描述 https://redis.io/topics/cluster-spec,There is always a window of time when it is possible to lose writes during partitions.(分區的時間窗口內總是有可能丟失寫操作) 。

    4. 手動故障轉移。

    • 可能某個節點需要維護(機器下線、硬件升級、系統版本調整等等場景),需要手動地實現轉移。
    • 在 slave 節點上執行命令。CLUSTER FAILOVER
    • 注:CLUSTER help 可以看到幫助文檔和簡介。 相對安全的做法。

    5. 擴容。

    # 1、 啟動新節點
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/6387.conf
    
    # 2、 加入到已經存在的集群作為master
    /usr/local/redis/bin/redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6382
    # 本質就是發送一個新節點通過 CLUSTER MEET 命令加入集群
    # 新節點沒有分配 hash 槽
    
    # 3、 加入到已經存在的集群作為 slave
    /usr/local/redis/bin/redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6382 --cluster-slave
    # 可以手工指定 master,否則就是選擇一個 slave 數量較少的master 
    /usr/local/redis/bin/redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6382 --cluster-slave --cluster-master-id <node-id>
    # 還可以將空 master,轉換為 slave(終端操作)。
    cluster replicate <master-node-id>
    
    # 4、 檢查集群
    /usr/local/redis/bin/redis-cli --cluster check 127.0.0.1:6382

    6. 縮容(刪除節點)。

    今天給大家分享一個超級實用的腳本,一鍵自動安裝部署Redis的任意版本,記住是任意版本哦!

    腳本用法:chmod 755 redis-install.sh && sh redis-install.sh 4.0.10 (后面跟的是你需要的版本號,需要什么版本就寫什么版本),我這里安裝的4.0.10

    具體腳本內容如下展示:

    #! /usr/bin/bash
    ##redis任何版本全程自動化源碼編譯安裝
    ##用法: sh redis-install.sh 4.0.10 (后面跟的是你需要的版本號,需要什么版本就寫什么版本),我這里安裝的4.0.10
    version=$1
    usage(){
    echo "usage: $0 version"
    }
    
    if [ $# -ne 1 ]
    then
    usage
    exit -1
    fi
    
    #Redis安裝包下載
    cd /usr/local/src
    if [ ! -f redis-${version}.tar.gz ]
    then
    curl -o /usr/local/src/redis-${version}.tar.gz http://download.redis.io/releases/redis-${version}.tar.gz
    fi
    
    #Redis依賴包安裝
    yum clean all
    yum makecache fast
    yum -y install gcc gcc-c++ tcl
    
    #編譯Redis所需要的gcc
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    source /opt/rh/devtoolset-9/enable
    echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
    gcc --version
    
    ##內系統參數核優化
    cat >> /etc/rc.d/rc.local << "EOF"
    
    ##關閉Linux的THP(內存管理系統)通過使用更大的內存頁面,來減少具有大量內存的計算機上的TLB的開銷
    if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]
    then
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    
    if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]
    then
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    EOF
    chmod u+x /etc/rc.d/rc.local
    
    if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]
    then
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    
    if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]
    then
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    
    cat >> /etc/sysctl.conf << "EOF"
    
    #Linux系統內核參數優化
    net.core.somaxconn = 2048
    net.ipv4.tcp_max_syn_backlog = 2048
    vm.overcommit_memory = 1
    EOF
    sysctl -p
    
    cat > /etc/security/limits.conf << "EOF"
    root soft nofile 65535
    root hard nofile 65535
    * soft nofile 65535
    * hard nofile 65535
    EOF
    
    #Redis編譯安裝
    cd /usr/local/src
    tar -zxvf redis-${version}.tar.gz
    cd /usr/local/src/redis-${version}
    make
    make PREFIX=/usr/local/redis install
    
    #Redis基礎配置
    mkdir -p /usr/local/redis/{etc,logs,data}
    egrep -v "^$|^#" /usr/local/src/redis-${version}/redis.conf > /usr/local/redis/etc/redis.conf
    #sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /usr/local/redis/etc/redis.conf
    sed -i "s/protected-mode yes/protected-mode no/g" /usr/local/redis/etc/redis.conf
    sed -i "s/daemonize no/daemonize yes/g" /usr/local/redis/etc/redis.conf
    sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/usr\/local\/redis\/redis.pid/g" /usr/local/redis/etc/redis.conf
    sed -i "s/dir \.\//dir \/usr\/local\/redis\/data/g" /usr/local/redis/etc/redis.conf
    sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/logs\/redis.log\"/g" /usr/local/redis/etc/redis.conf
    sed -i "s/dbfilename dump.rdb/dbfilename dump.rdb/g" /usr/local/redis/etc/redis.conf
    sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly.aof\"/g" /usr/local/redis/etc/redis.conf
    
    #PATH配置
    echo "export PATH=${PATH}:/usr/local/redis/bin" >>/etc/profile
    source /etc/profile
    #啟動redis服務
    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
    #查看redis監聽端口
    netstat -tanp|grep redis

    執行腳本后開始自動安裝redis4.0.10

    自動安裝Redis4.0.10所需要的的依賴包,如下圖所示:

    自動開始解壓:

    開始自動make

    開始自動make install

    安裝完成,Redis服務已成功啟動:

    到這里整改自動安裝腳本已成功執行完畢,我們可以收到通過ps –ef|grep redis來查看服務狀態以及監聽端口。

    登陸redis,執行簡單的語句:

    關注我每天分享更多實用的運維知識哦[中國贊]

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有