alt

#所有机器安装redis
[root@C17 ~]# yum -y install gcc jemalloc-devel
[root@C17 ~]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz
[root@C17 ~]#  tar xvf redis-5.0.7.tar.gz
[root@C17 ~]# cd redis-5.0.7/
[root@C17 redis-5.0.7]# make -j && make install
[root@localhost redis-5.0.7]# ./utils/install_server.sh  #初始化配置,一直回车或者输入其他路径
[root@localhost redis-5.0.7]# pkill redis-server

#所有机器修改配置文件
 vim /etc/redis/6379.conf
#修改
bind 0.0.0.0
masterauth "123456"
requirepass "123456"

#两个从节点
echo "replicaof 10.0.0.8 6379" >> /etc/redis/6379.conf

#所有节点启动redis
systemctl start redis_6379.service

#两个从节点配置主从
redis-cli -a 123456
127.0.0.1:6379> REPLICAOF 172.16.1.17 6379
OK
127.0.0.1:6379> CONFIG SET masterauth '123456'
OK
127.0.0.1:6379> info
.....

# Replication
role:slave
master_host:172.16.1.17
master_port:6379
master_link_status:up

....

#所有机器编辑哨兵的配置文件
cp /root/redis-5.0.7/sentinel.conf /etc/redis/

vim /etc/redis/sentinel.conf
bind 0.0.0.0
daemonize yes
/var/log/redis/sentinel_26379.log

#指定当前mymaster集群中master服务器的地址和
端口, 2一般设置为所有sentinel节点的一半以上数值
sentinel monitor mymaster 172.16.1.17 6379 2

#mymaster集群中master的密码,注意此行要在上面行的下
面
sentinel auth-pass mymaster 123456

#(SDOWN)判断mymaster集群中所有节点
的主观下线的时间,单位:毫秒,默认30s
sentinel down-after-milliseconds mymaster 3000

#所有机器启动哨兵
mkdir /var/log/redis

redis-sentinel /etc/redis/sentinel.conf

[root@C17 ~]# ss -lnt
State      Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port
LISTEN     0      128                                    *:26379                                              *:*
LISTEN     0      128                                    *:6379                                               *:*

#在主节点停掉redis
[root@C17 ~]# systemctl stop redis_6379.service

[root@C27 ~]#vim /var/log/redis/sentinel_26379.log

alt

#在C17重新启动redis,会自动加入新主,成为从节点
[root@C17 ~]# systemctl start redis_6379