Redis主从复制
1.是什么
1.单机有什么问题:
单机故障
容量瓶颈
qps瓶颈
主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,mester已写为主,slaver已读为主
2.能干嘛
1.读写分离
2.容灾备份
3.怎么玩
玩法原则:
1.配从不配主
2.使用命令 SLAVEOF 动态指定主从关系 ,如果设置了密码,关联后使用 config set masterauth 密码
3.配置文件和命令混合使用时,如果混合使用,动态指定了主从,请注意一定要修改对应的配置文件
1.新建redis8000,redis8001,redis8002文件夹
2.将redis.conf文件复制在redis8000下
3.分别修改个目录下的redis.conf文件
redis8000/redis.conf
1.bind 192.168.0.104 指定本机ip
2.port 8000
3.daemonize yes
4.pidfile /var/run/redis_8000.pid
5.dir /myredis/redis8000
6.requirepass 123456
4.把redis8000/redis.conf文件复制到redis8001,redis8002下
redis8001/redis.conf
-
:%s/8000/8001/g 批量替换
-
replicaof 192.168.0.104 8000
-
masterauth 123456
redis8002/redis.conf
5.分别启动8000.8001,8002实例
-
:%s/8000/8002/g 批量替换
-
replicaof 192.168.0.104 8000
-
masterauth 123456
[root@localhost myredis]# /usr/local/bin/redis-server /myredis/redis8000/redis.conf [root@localhost
myredis]# /usr/local/bin/redis-server /myredis/redis8001/redis.conf [root@localhost myredis]#
/usr/local/bin/redis-server /myredis/redis8002/redis.conf
6.客户端连接
/usr/local/bin/redis-cli -h 192.168.0.104 -p 8000 -a 123456
/usr/local/bin/redis-cli -h 192.168.0.104 -p 8001 -a 123456
/usr/local/bin/redis-cli -h 192.168.0.104 -p 8002 -a 123456
4.全量复制消耗
1.bgsave时间 2.rdb文件网络传输 3.从节点请求请求数据时间 4.从节点加载rdb的时间 5.可能的aof重写时间
5.缺点
1.由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延
迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。
2.当主机宕机之后,将不能进行写操作,需要手动将从机升级为主机,从机需要重新制定master
简单总结:
一个master可以有多个Slave
一个slave只能有一个master
数据流向是单向的,只能从主到从