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.結果
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