redis 主从复制部署

主从复制

1.快速部署第二台Redis服务器

ssh-keygen
ssh-copy-id 10.0.0.51
rsync -avz 10.0.0.51:/opt/redis_6379 /opt/
rsync -avz 10.0.0.51:/usr/local/bin/redis* /usr/local/bin/
rsync -avz 10.0.0.51:/usr/lib/systemd/system/redis.service /usr/lib/systemd/system/
sed -i 's#51#52#g' /opt/redis_6379/conf/redis_6379.conf
mkdir -p /data/redis_6379
groupadd redis -g 1000
useradd redis -u 1000 -g 1000 -M -s /sbin/nologin
chown -R redis:redis /opt/redis*
chown -R redis:redis /data/redis*
systemctl daemon-reload
systemctl start redis

报错总结:

1.在db01上执行了命令
2.配置文件里的密码没删掉
3.配置文件里的重命名参数没删掉
4.用户id和组id冲突
5.没有rsync
6.拷贝过来的配置文件没有修改IP地址

2.db01插入测试命令

for i in {1..1000};do redis-cli set key_${i} v_${i} && echo "${i} is ok";done

3.配置主从复制

方法1:临时生效

redis-cli -h 10.0.0.52 SLAVEOF 10.0.0.51 6379

方法2:写进配置文件永久生效

SLAVEOF 10.0.0.51 6379
slave-read-only yes  // 从库只读

4.检查复制进度

INFO replication
ROLE

4.主从复制流程

1.简单流程

1.从节点发送同步请求到主节点
2.主节点接收到从节点的请求之后,做了如下操作
  - 立即执行bgsave将当前内存里的数据持久化到磁盘上
  - 持久化完成之后,将rdb文件发送给从节点
3.从节点从主节点接收到rdb文件之后,做了如下操作
  - 清空自己的数据
  - 载入从主节点接收的rdb文件到自己的内存里
4.后面的操作就是和主节点实时的了

5.取消复制

SLAVEOF no one

6.主从复制注意

1.从节点只读不可写 
2.从节点不会自动故障转移,他会一直尝试同步主节点,并且依然不可写
3.主从复制故障转移需要介入的地方
  - 修改代码指向新主的IP
  - 从节点需要执行slaveof no one 
4.从库建立同步时会清空自己的数据,如果同步对象写错了,就清空了
5.从库也可以正常的RDB持久化

7.安全的操作

一定要做好数据备份,无论是主节点还是从节点,操作前最好做下备份

8.主从复制密码

masterauth 123456

posted @ 2022-05-20 11:43  hai起奈  阅读(41)  评论(0编辑  收藏  举报