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宕机后,由日志可知,后台正通过投票从从库中选择新的主库。