redis主从同步

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中

原文地址:https://www.cnblogs.com/yuchen1301152/p/10611553.html