主机数据更新后根据配置和策略,自动同步到备机的master/slaver 机制,Master以写为主,Slave以读为主。
<1>读写分离。性能扩展
<2>容灾快速恢复
redis6397.conf
redis6380.conf
redis6381.conf
引入主配置文件
修改pidi文件
设置端口号
修改持久化文件名
info replication
slaveof
成为某个实例的从服务器
将6380 和6381 作为6379的从服务器
从服务器:
主服务器:
在主服务器上写:
在从服务器上读取主服务器的数据:
- 当从服务器宕机重启之后,默认不再是从服务器, 而是作为一个主服务器,需要重新设置为从服务器,并且重新设为从服务器之后,会自动复制主服务器的数据到从服务器。
- 当主服务器宕机之后,从服务器依的设置不会改变,原地待命。主服务器重启之后,依旧能找到从服务器。
- 如果有一个主服务器,多个从服务器。进行链式同步。
缺点是如果中间的服务器宕机,则后边的服务器接收不到同步数据
2. 演示
127.0.0.1 6379 作为主服务器
127.0.0.1 6380 作为6379的从服务器
127.0.0.1 6381 作为6380的从服务器
特点和一主二仆一样
-
当一个master服务器宕机之后,slave服务器立即成为master ,其后面的slave不用做任何修改。
-
使用slaveof no one命令,则可以将从服务器变为主服务器
-
自动检测,主服务器是否宕机,采用哨兵模式
- 当从服务器连接服务器之后,从服务器会向主服务器发送数据同步消息。
- 主服务器接到从服务器发送过来的同步请求,把主服务器数据进行持久化rdb文件,把rdb文件发送给从服务器。
- 每次主服务器每次进行写操作之后,和从服务器进行数据同步。
反客为主的自动版,能够后台监控主服务器是否故障,如果故障了根据投票数自动将从转换为主。
127.0.0.1 6379 作为主服务器
127.0.0.1 6380 作为6379的从服务器
127.0.0.1 6381 作为6379的从服务器
名字不能错
在/myredis下新建sentinel.conf配置文件
sentinel monitor mymaster 127.0.0.1 6379 1
mymaster 为监控对象的服务器名字,1 为至少有多少个哨兵同意迁移的数量
4. 启动哨兵执行 redis-sentinel /myredis/sentinel.conf
<1>大概10秒左右可以看到哨兵窗口日志,切换了主机
<2>选举优先级别 : slave-priority
<3>原主服务器重启后会变成从服务器
第一步,将6379 shutdown
第二步:哨兵将打印信息 ,6379 宕机,将6380 作为新的主服务器
第三步:6379重新上线之后,会作为从服务器
由于所有写操作都是先在master上操作,然后同步更新到slave上,所以从master同步到slave机器会有一定的延迟,当系统很繁忙的时候,延迟问题会更严重,slave机器数量的增加也会使这个问题更加严重。
<5> 故障恢复
优先级在redis.conf中默认:replice-priority 为100 ,值越小优先级越高
偏移量是指获取原主机数据最全的
每个redis实例启动后都会对其生成一个40位的runid



