1.1 什么是主从复制

        主库数据更新后根据配置和策略,自动同步到从库(备份机)的master/slaver机制,master(主库) 以写为主,slave(从库) 以读为主。

1.2 主从复制的作用

        读写分离: master 以写为主,slave 以读为主。

        容灾恢复: 由于slaves的数据是master的副本,无论是master还是slaves宕机了数据都能得到有效的恢复。

1.3 环境准备

 1.3.1复制三份redis的配置文件

        可以分别命名为redis-6379.conf 、redis-6380.conf、redis-6381.conf
        cd  /usr/local/bin/tlconfig
        cp redis.conf redis-6379.conf
        cp redis.conf redis-6380.conf
        cp redis.conf redis-6381.conf

 1.3.2 设置守护

                daemonize  yes

 1.3.3 设置端口

                三个配置文件分别设置端口
                        port 6379,port 6380和port 6381  我们把6379作为主,6380和6381作为从

                设置pid

                pid文件路径分别配置为

                        pidfile /var/run/redis_6379.pid,

                        pidfile /var/run/redis_6380.pid

                        pidfile /var/run/redis_6381.pid

                

                设置log
                        log名称分别配置为
                        logfile "6379.log",
                        logfile "6380.log"
                        logfile "6381.log"

                设置db
                        db文件名称分别配置为

                                dbfilename dump6379.rdb

                                dbfilename dump6380.rdb

                                dbfilename dump6381.rdb

        1.4 启动 

                分别使用redis-6379.conf、redis-6380.conf、redis-6381.conf来启动三个服务
                        redis-server tlconfig/redis-6379.conf 
                        redis-server tlconfig/redis-6380.conf 
                        redis-server tlconfig/redis-6381.conf 

        1.5 客户端连接

        使用三个命令行窗口分别连接redis服务。

        1.6 主从复制模式

        常用三招 : 
               一主二从
                薪火相传
                反客为主

2.1 什么是哨兵模式

                一组sentinel能同时监控多个master
                 反客为主的自动版,由反客为主可知,当主库宕机之后,需要手动重新选择新的master,并且重新修改slave的主库指向。哨兵模式即能够在后台监控主库如果出现故障,则根据投票自动从从库中选择新的主库,并且其他从库以新的主库为master。
和反客为主不同之处在于当旧的master重新连接后,旧的master也会成为新的master的slave。
sentinel monitor 被监控数据库名称(自定义) 被监控数据库ip地址 被监控数据库端口号 票数,表示当被监控的数据库出现故障后,自动从从库中投票,从库达到指定票数后则变成其他从库的新主库。

2.2 环境搭建

2.2.1 新建sentinel.conf

        新建sentinel.conf文件,名字绝不能错
        cd /usr/local/bin
        touch sentinel.conf

2.2.2 配置sentinel.conf

        sentinel monitor 145-79 192.168.2.145 6379 1

        sentinel auth-pass 145-79 root

2.2.3 启动

                启动6379,6380,6381
                79分别为80和81的主库(一主二从)

                新的窗口用redis-sentinel sentinel.conf 以sentinel的方式启动redis监控服务

                用shutdown演示79宕机后,由日志可知,后台正通过投票从从库中选择新的主库。