redis哨兵模式搭建

1.下載redis安裝包redis

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

b.解壓 
tar -xvf redis-5.0.5.tar.gz
cd redis-5.0.5
make
make install

2.搭建一主二從三哨兵配置文件網絡

主redis配置文件tcp

redis_master.conf

bind 192.168.3.117
port 6379
daemonize yes
dir /data/redis_master
logfile /data/redis/redis_master.log

二從配置文件spa

redis_slave_one.conf

bind 192.168.3.117
port 6380
daemonize yes
dir /data/redis/redis_slave_one
logfile /data/redis/redis_slave_one.log
slaveof 192.168.3.117 6379

---------------------------------------

redis_slave_two.conf

bind 192.168.3.117
port 6381
daemonize yes
dir /data/redis/redis_slave_two
logfile /data/redis/redis_slave_two.log
slaveof 192.168.3.117 6379

三守護配置文件rest

master的守護者文件配置

bind 192.168.3.117
port 26379
sentinel myid f8c2ae332072ddbd62e778e5ffbb33fcc6fc786e
dir "/data/redis/master_sentinel"
logfile "/data/redis/sentinel/master_sentinel.log"
daemonize yes

-------------------------------------

slave_one的守護者配置文件

bind 192.168.3.117
port 26380
sentinel myid d47b5dc1d048e08cd400115ead7407f276ac9dbc
dir "/data/redis/slave_one_sentinel"
logfile "/data/redis/sentinel/slave_two_sentinel.log"
daemonize yes

------------------------------------

slave_two的守護者配置文件

bind 192.168.3.117
port 26381
sentinel myid bf65ebc664402c2faca875f080e1e52fd2010688
dir "/data/redis/slave_two_sentinel"
logfile "/data/redis/sentinel/slave_two_sentinel.log"
daemonize yes

3.啓動日誌

啓動主redis:
/usr/local/redis-5.0.5/src/redis-server /etc/redis/redis_master.confcode

啓動兩從:
/usr/local/redis-5.0.5/src/redis-server /etc/redis/redis_slave_one.confserver

/usr/local/redis-5.05/src/redis-server /etc/redis/redis_slave_two.confblog

啓動主Redis的哨兵:
/user/local/redis-5.0.5/src/redis-sentinel /etc/redis/redis_master_sentinel.conf
也可
/user/local/redis-5.0.5/src/redis-server /etc/redis/redis_master_sentinel.conf --sentinel進程

啓動兩從Redis的哨兵:
/usr/local/redis-5.0.5/src/redis-sentinel /etc/redis/redis_slave_one_sentinel.conf

/usr/local/redis-5.0.5/src/redis-sentinel /etc/redis/redis_slave_two_sentinel.conf

4.結果

image.png

5.redis配置參數說明

bind 192.168.3.117  綁定到主機ip
port 6379 服務端口號
daemonize yes/no 是否後臺運行 
pidfile /var/run/redis.pid 當以守護進程運行時,pid能夠寫入pid文件中
timeout 300 客戶端鏈接多長時間關閉,若是爲0則不斷開
tcp-keepalive 0 設置客戶端網絡鏈接中斷時間,爲0則不檢測
databases 16 默認有16個庫
save 300 10 300秒內,有10個更改就保存一次
dir rdb aof備份文件放置位置
logfile /data/redis/redis_master.log 日誌文件所在位置
slaveof 192.168.3.117 6379 從節點關聯的主節點的ip地址及端口號
sentinel myid f8c2ae332072ddbd62e778e5ffbb33fcc6fc786e 守護redis id
sentinel monitor mymaster 192.168.3.117 6380 2 表明該哨兵監視192.168.3.117 6380的redis,當哨兵選舉達到2個後,選舉新的主節點
sentinel down-after-milliseconds mymaster 3000當哨兵之間互相ping,ttl大於3s後,確認不可達
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

6.啓動腳本

#!/bin/sh
#Configurations injected by install_server below....

EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/data/redis/redis.pid
CONF="/data/redis/redis.conf"
REDISPORT="16379"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
            echo "$PIDFILE exists, process is already running or crashed"
        else
            echo "Starting Redis server..."
            $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
            echo "$PIDFILE does not exist, process is not running"
        else
            PID=$(cat $PIDFILE)
            echo "Stopping ..."
            $CLIEXEC -p $REDISPORT shutdown
            while [ -x /proc/${PID} ]
            do
                echo "Waiting for Redis to shutdown ..."
                sleep 1
            done
            echo "Redis stopped"
        fi
        ;;
    status)
        PID=$(cat $PIDFILE)
        if [ ! -x /proc/${PID} ]
        then
            echo 'Redis is not running'
        else
            echo "Redis is running ($PID)"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Please use start, stop, restart or status as first argument"
        ;;
esac

哨兵的啓動腳本

#!/bin/sh
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/redis/.local/bin:/home/redis/bin

nohup /usr/local/bin/redis-sentinel /data/redis/sentinel.conf 2>&1 &

ps -ef |grep redis
相關文章
相關標籤/搜索