redis 之 哨兵
#:编译安装redis4.0 [root@master ~]# tar xf redis-4.0.14.tar.gz [root@master ~]# cd redis-4.0.14/ [root@master redis-4.0.14]# make PREFIX=/apps/redis install #:创建redis用户 [root@master redis-4.0.14]# groupadd -g 55 redis && useradd -r -g redis -u 55 redis #:创建redis所需的目录 [root@master redis-4.0.14]# mkdir /apps/redis/{data,etc,logs,run} [root@master redis-4.0.14]# chown -R redis.redis /apps/redis/* #:创建环境变量软连接 [root@master redis-4.0.14]# ln -sv /apps/redis/bin/redis-* /usr/bin #:创建启动脚本 [root@master redis-4.0.14]# vim /usr/lib/systemd/system/redis.service [Unit] Description=Redis persistent key-value database After=network.target After=network-online.target Wants=network-online.target [Service] ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd #ExecStop=/usr/libexec/redis-shutdown ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID Type=notify User=redis Group=redis RuntimeDirectory=redis RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target #:准备redis配置文件 [root@master redis-4.0.14]# cp redis.conf /apps/redis/etc/ #:修改配置文件 [root@master etc]# vim /apps/redis/etc/redis.conf bind 0.0.0.0 pidfile /apps/redis/run/redis_6379.pid logfile "/apps/redis/logs/redis_6379.log" stop-writes-on-bgsave-error no dir "/apps/redis/data/" masterauth 123456 requirepass 123456 appendonly yes #:将redis目录打包,拷贝给各节点 [root@master apps]# tar zcvf redis.tar.gz ./* [root@master apps]# scp redis.tar.gz 192.168.7.105:/apps/ [root@master apps]# scp redis.tar.gz 192.168.7.106:/apps/ #; 将启动脚本也拷贝过去 [root@master apps]# scp /usr/lib/systemd/system/redis.service 192.168.7.105:/usr/lib/systemd/system/ [root@master apps]# scp /usr/lib/systemd/system/redis.service 192.168.7.106:/usr/lib/systemd/system/
将剩下两个节点配置成从节点
#:先解压文件 [root@slave ~]# cd /apps/ [root@slave apps]# tar xf redis.tar.gz [root@slave apps]# cd redis/ #:修改配置文件,配置成从节点 [root@slave redis]# vim etc/redis.conf slaveof 192.168.7.101 6379 masterauth "123456" #:创建redis用户 [root@slave redis]# groupadd -g 55 redis && useradd -g redis -u 55 redis #:启动服务 [root@slave redis]# systemctl start redis #:检测 [root@slave redis]# redis-cli 127.0.0.1:6379> AUTH 123456 # Replication role:slave master_host:192.168.7.101 master_port:6379 master_link_status:up #:106 同样这样配置一下
在每个节点布置哨兵
#:准备哨兵配置文件 [root@master apps]# cd ~/redis-4.0.14/ [root@master redis-4.0.14]# cp sentinel.conf /apps/redis/etc/ #:修改属主属组 [root@master redis-4.0.14]# chown -R redis.redis /apps/redis/* #;修改配置文件 [root@master redis-4.0.14]# vim /apps/redis/etc/sentinel.conf bind 0.0.0.0 dir "/apps/redis/" sentinel monitor mymaster 192.168.7.101 6379 2 #:最少写全部集群一半的数量 sentinel auth-pass mymaster 123456 sentinel deny-scripts-reconfig yes daemonize yes pidfile "/apps/redis/run/redis-sentinel.pid" logfile "/apps/redis/logs/sentinel_26379.log" #:将配置文件拷贝到各节点 [root@master redis]# scp etc/sentinel.conf 192.168.7.105:/apps/redis/etc/ [root@master redis]# scp etc/sentinel.conf 192.168.7.106:/apps/redis/etc/ #:开始启动哨兵(选启动主的,紧接着启动从的) [root@master etc]# /apps/redis/bin/redis-sentinel /apps/redis/etc/sentinel.conf #:停掉master 测试 #:如果主节点重新上线,记得要改下配置文件,配置成从服务器在上限