redis主从同步机制: # 基于FDB
1.环境准备,准备3个redis数据库实例
准备3个redis配置文件即可
redis-6379.conf
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dbfilename dump.rdb
dir /data/6379 #主机
redis-6380.conf
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dbfilename dump.rdb
dir /data/6380
SLAVEOF 127.0.0.1 6379 # 从机身份写入到配置中了 6379为主机端口
redis-6381.conf
port 6381
daemonize yes
pidfile /data/6381/redis.pid
loglevel notice
logfile "/data/6381/redis.log"
dbfilename dump.rdb
dir /data/6381
SLAVEOF 127.0.0.1 6379 # 从机身份写入到配置中了 6379为主机端口
替换
sed "s/6379/6380/g" redis-6379.conf> redis-6380.conf # 把6379 替换成6380 /g全局替换
# 这个的意思就是 在全局范围内 把6379替换成6380 并且把6379.conf修改后的结果写入 6380.conf
sed "s/6379/6381/g" redis-6379.conf> redis-6381.conf
#这样就迅速生成3个配置文件
2.分别启动三个 数据库
在 opt/redis-4.0.10/MSredis 下执行
redis-server redis-6379.conf
redis-server redis-6380.conf
redis-server redis-6381.conf
3.此时已经是一主两从的身份了
127.0.0.1:5380> info replication 查看身份
#role:slave 从机
4.可以演示在主库写入数据,从库读取数据的实验
在 主机中:
set name "haha" 写入数据
然后在2台从机中
get name 查看数据 有的话就成功
手动切换主从同步的故障(当主库挂掉的时候,怎么办 )
1.模拟主库挂掉,kill杀死主库的进程
2.此时俩从库,群龙无首
3.手动的切换两个从库的身份,让其中一个 为新的master
选举6381为新的master,只需要在6381下输入 slaveof on one
然后配置6380为新的slave ,只需要 在6380下输入 slaveof 127.0.0.1 6381
4.此时新的一主一从 就好了
主 6381
从6380
5,可以测试写入数据
......
------------------------------------------------------------------------------------
PS:补充一些小操作
curl -I www.taobao.com #发起http请求的一个linux命令 -I是获取响应头
rz 导入 windows的文件 到linux中
sz 从 linux中导出到windows中
df -h 查看系统磁盘剩余量
free -m 显示内存资源信息
cat /proc/ 查看机器 几核
PS:补充一些小操作
curl -I www.taobao.com #发起http请求的一个linux命令 -I是获取响应头
rz 导入 windows的文件 到linux中