redis主从复制

来源:互联网 发布:网络机房维护标准 编辑:程序博客网 时间:2024/06/08 18:19
1.主从复制的好处
(1)备份,防止主机宕机
(2)读写分离,分担master的任务

(3)任务分离,如从服务器可以分担备份与计算工作

2.图示

3.主从通信过程

4.配置
(1)master
a.关闭rdb快照,备份工作交给slave
b.可以开启aof
(2)slave
a.声明slave-of
b.配置密码(如果master有密码)
c.某一个slave打开rdb快照功能
d.配置是否只读 slave-read-only
5.具体步骤
复制并重命名文件
将 /etc/redis/redis.conf 复制到同目录下,并分别重命名为redis6380.conf和redis6381.conf
pkill -9 redis
vim /etc/redis/redis6380.conf //配置从服务器
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb //保证开启,这里使用从服务器导出rdb
appendonly no //不产生aof
appendfilename "appendonly.aof"
slaveof 127.0.0.1 6379
slave-read-only yes //设置只读

vim /etc/redis/redis6381.conf //配置第二台从服务器
pidfile /var/run/redis_6381.pid
port 6381
//不让第二台从服务器产生rdb
#save 900 1
#save 300 10
#save 60 10000
appendonly no //不产生aof
slaveof 127.0.0.1 6379
slave-read-only yes //设置只读

vim /etc/redis/redis.conf //配置主服务器
#save 900 1
#save 300 10
#save 60 10000
//主服务器关闭生成rdb快照功能
appendonly yes //产生aof
appendfilename "appendonly.aof"

测试前先删除已经产生的的dump.rdb和appendonly.aof文件,以便对测试造成干扰

开启三台服务器
/usr/local/redis/bin/redis-server /etc/redis/redis.conf
/usr/local/redis/bin/redis-server /etc/redis/redis6380.conf
/usr/local/redis/bin/redis-server /etc/redis/redis6381.conf
若主服务器配置文件添加了密码,则从服务器配置文件也要加密码 masterauth

打开三个终端,连接不同的服务器
/usr/local/redis/bin/redis-cli -p 6379 -a admin888
/usr/local/redis/bin/redis-cli -p 6380 -a admin888
/usr/local/redis/bin/redis-cli -p 6381 -a admin888
6.主从复制的缺陷
每次slave断开后,再连接master,都有master全部dump出rdb,然后在aof
因此多台slave不要同时开启,隔几分钟再开
7.可能出现的问题
若主从无法同步,可以将从服务器配置文件 daemonize yes 改为daemonize no,这样能找出错误位置
笔者在主从服务器的配置文件中都设置了密码,结果无法同步,取消密码设置即ok
其他的问题解决方案大家可以百度,但是要清除错在哪,不要盲目地找

0 0
原创粉丝点击