主从复制
一、搭建一主多从
-
创建 myredis 文件夹
-
复制redis.conf到文件夹
-
创建三个配置文件 touch redis6379.conf
reids6379.conf reids6380.conf reids6381.conf
-
在三个配置文件中写入内容 vim redis6379.conf
include /myredis/redis.conf pidfile /var/run/redis_6379.pid port 6379 dbfilename dump6379.rdb
-
启动三台redis
-
查看三台主机运行情况 redis-cli 进入redis客户端 info replication
-
配置从机 进入从机客户端 redis-cli
-
测试
二、常用3招
1. 一主两从
① 从服务失效
- 让一个从服务器失效
- 在主服务器中添加key
- 再次启动失效的服务器,重启之后变为主服务器(单独的一台服务器)
- 再将失效的服务器变为从服务器 (设置为主6379的从服务器)
- 重新复制主服务器中的所有key
② 主服务器失效
- 关闭主服务器
- 查看从服务器,还是从服务器
- 重新启动主服务器,还是主服务器
2. 薪火相传
- 让6380服务器同步6381服务器
- 查看6379的从服务器,只剩6381
- 一个从服务器下可以有多个从服务器
3. 反客为主
-
关闭主服务器
-
不做任何操作从服务器还是从服务器
-
上位
三、复制原理
四、哨兵模式
反客为主的自动版,能够后台监控主机是否故障,如果出现故障根据投票数自动将从服务器变为主服务器。
1. 切换回一主两从的模式
2. 自定义文件
在当前目录下创建 sentinel.conf 文件 touch sentinel.conf
3. 配置哨兵
在sentinel.conf文件中添加如下语句:vim sentinel.conf (打开文件)
4. 启动哨兵
redis-sentinel sentinet.conf
5. 选择从机作为主机
- 关闭主机
- 查看
- 6381变为主服务器
- 重启6379,变为从服务器
选择规则
1. 选择优先级靠前的
2. 选择偏移量最大的
3. 选择runid最小的从服务