redis的主从复制:主少从多,主写从读,读写分离、主写同步复制到从
搭建一主二从的集群:
1)搭建三台redis服务:使用一个Redis模拟三台redis服务
提供三份redis配置文件:redis6379.conf,redis6380.conf,redis6381.conf
修改三份配置文件:以redis6379.conf为例:
bind:127.0.0.1
port:6379
pidfile pidfile /var/run/redis_6379.pid
logfile"6379.log"
dbfilename dump6379.rdb
分别使用三个redis配置文件,启动redis服务
redis-server redis6379.conf &
2)通过redis客户端分别连接三台redis服务
redis-cli -h 127.0.0.1 -p 6379
3)查看三台redis服务在集群中的主从角色:
info replication:默认情况下所有的redis服务都是主机,即都能读和写,但是都还没有从机
三台redis服务互相独立互不影响
4)设置主从关系:设从不设主
在6380上设置:slaveof 127.0.0.1 6379
在6381上设置:slaveof 127.0.0.1 6379
5)一旦主从关系确定自动把主机上已有的数据同步复制到从库
6)增量复制:主库写数据会自动同步到从库:往6379上添加数据
set k2 v2
7)在6380和6381上执行写操作:从机不能写数据,只能读
8)主机宕机:从机原地待命
关闭6379服务:redis-cli -h 127.0.0.1 -p 6379 shutdown
6380查看主从角色不变
9)主机恢复:重启6379(模拟主机恢复)
10)从机宕机:关闭6380服务:主机少一个从机,其他从机不变
11)从机恢复:重启6380服务:6380变成了主机需要重更新主从关系
12)从机上位:
a)主机宕机,从机原地待命
b)从机断开原来的主从关系,
在6380上执行slaveof no one
c)重新设置主从关希:
在6381上执行:slaveof 127.0.0.1 6380
14)之前的主机恢复:重启6379
在6379上执行slaveof 127.0.0.1 6381从属于6381(6381这个时候于是从机主机又是从机),但是只要有从的角色 是不可以执行写的功能。
小结:一台主机配置多台从机,从而形成一个庞大的集群结构,减轻一台主机的压力但是增加了服务间的延迟时间。
6379:
6380:
6381