集群的作用:
1,主从备份 防止主库down机
2,读写分离,分担master压力
3,任务分离,如从服务器分担备份的工作
大概同步原理:
1,slave启动发现需要连接master,那么sync自动同步一下
2,master dump出一份rdb文件给slave
3,master新产生的数据,通过缓冲aof文件
4,然后通过replicationfeedsalves进程保持联系;
master配置:
1,关闭rdb快照--备份交给slave
2,开启aof
slave配置:
1,声明slave-of
2,配置密码--如果master有密码
3,某一个slave打开rdb快照功能
4,配置是否只读slave-read-only
配置从服务器:
1,在主库复制相关配置文件
[[email protected]JF-TEST-370123 redis]# cp redis.conf redis6380.conf
[[email protected] redis]# cp redis.conf redis6381.conf
2,配置从服务器配置文件6380,修改如下地方
port 6380
pidfile /var/run/redis_6380.pid
dbfilename dump6380.rdb
slaveof localhost 6379
slave-read-only yes
配置从服务器配置文件6381,修改如下地方
port 6381
pidfile /var/run/redis_6381.pid
注释rdb产生条件
#save 900 1
#save 300 10
#save 60 3000
关闭第二个slave节点的aof功能
appendonly no
slaveof localhost 6379
3,查看环境中rdb文件,和aof文件。删除干净
[[email protected] dir]# rm *
rm: remove regular empty file ‘laoyang-appendonly.aof’? y
4,主master节点配置
取消rdb
#save 900 1
#save 300 10
#save 60 3000
aof文件关闭
appendonly no
5,启动主从集群
[[email protected] redis]# ./bin/redis-server ./redis.conf
[[email protected] redis]# ./bin/redis-server ./redis6380.conf
[[email protected] redis]# ./bin/redis-server ./redis6381.conf
6,验证,主服务器6379插入数据,6380检查
[[email protected] redis]# ./bin/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set zhucong ok
OK
127.0.0.1:6379> exit
[[email protected] redis]# ./bin/redis-cli -p 6380
127.0.0.1:6380> get zhucong
"ok"
[[email protected] redis]# ./bin/redis-cli -p 6381
127.0.0.1:6381> get zhucong
"ok"
总结:
缺点:每次slave断开后,无论是主动断开,还是网络故障。在连接master,都要master全部dump出rdb,再aof。同步的过程都要重新执行一遍,所以切记,多台的slave不要一次全部启动起来,否则master可能IO飙升。
原文地址:https://blog.51cto.com/yangjunfeng/2412137