Redis主从复制_redis only 0 of 1 slaves were synced,成体系化的神级软件测试进阶笔记,

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

[root@db02~]# cd /opt/
[root@db02 opt]# tar -xzvf db01.tar ##解压文件
[root@db02 opt]# cd redis_cluser/redis
[root@db02 redis]# make install ##开始编译安装
[root@db02 redis]# mkdir /data/redis_cluster/redis_6379/ -p ##创建数据目录
[root@db02 redis]# vim /opt/redis_cluser/redis_6379/conf/redis_6379.conf ##修改配置文件
bind 172.16.210.54 ##把监听地址改成从库主机的地址
[root@db02 redis]# redis-server /opt/redis_cluser/redis_6379/conf/redis_6379.conf ##启动redis
[root@db02 redis]# redis-cli -h db02 ##连接测试
db02:6379>

3.建立主从关系

在从库主机操作

db02:6379> SLAVEOF 172.16.210.53 6379 ##连接主库建立主从关系
OK
db02:6379> keys * ##查看数据


  1. “k_283”
  2. “k_247”
  3. “k_590”
  4. “k_903”
  5. “k_559”
  6. “k_711” ##数据成功同步到从库

主从建立关系流程说明

从库发起同步请求
主库收到请求后执行bgsave保存当前内存里的数据到磁盘
主库将持久化的数据发送给从库的数据目录
从库收到主库的持久化数据之后,先清空自己当前内存中的所有数据
从库将主库发送过来的持久化文件加到自己的内存里

总结:

1.执行主从复制之前,先将数据备份一份
2.建议将主从复制写入到配置文件中
3,在业务低峰期做主从复制.
3.拷贝数据时会占用宽带
4.不能自动完成主从切换,需要人工介入

二、Redis高可用之主从复制

1.Redis复制的原理和优化

1.1 Redis单机的问题

1.1.1 机器故障

在一台服务器上部署一个Redis节点,如果机器发生主板损坏,硬盘损坏等问题,不能在短时间修复完成,就不能处理Redis操作了,这就是单机可能存在的问题

同样的,服务器正常运行,但是Redis主进程发生宕机事件,此时只需要重启Redis就可以了。如果不考虑在Redis重启期间的性能损失,可以考虑Redis的单机部署

Redis单机部署出现故障时,把Redis迁移到另一台服务器上,此时需要把发生故障的Redis中的数据同步到新部署的Redis节点,这也需要很高的成本

1.1.2 容量瓶颈

一台服务器有16G内存,此时分配12G内存运行Redis

如果有新需求:Redis需要占用32G或者64G等更多的内存,此时这台服务器就不能满足需求了,此时可以考虑更换一台更大内存的服务器,也可以用多台服务器组成一个Redis集群来满足这个需求

1.1.3 QPS瓶颈

根据Redis官方的说法,单台Redis可以支持10万的QPS,如果现在的业务需要100万的QPS,此时可以考虑使用Redis分布式

2.什么是主从复制

2.1 一主一从模型

一个Redis节点为master节点(主节点),负责对外提供服务。

另一个节点为slave节点(从节点),负责同步主节点的数据,以达到备份的效果。当主节点发生宕机等故障时,从节点也可以对外提供服务

如下图所示
在这里插入图片描述
2.2 一主多从模型

一个Redis节点为master节点(主节点),负责对外提供服务。

多个节点为slave节点(从节点)。每个slave都会对主节点中的数据进行备份,以达到更加高可用的效果。这种情况下就算master和一个slave同时发生宕机故障,其余的slave仍然可以对外读提供服务,并保证数据不会丢失

当master有很多读写,达到Redis的极限阀值,可以使用多个slave节点对Redis的读操作进行分流,有效实现流量的分流和负载均衡,所以一主多从也可以做读写分离
在这里插入图片描述
2.3 读写分离模型
master节点负责写数据,同时客户端可以从slave节点读取数据
在这里插入图片描述

3.主从复制作用

对数据提供了多个备份,这些备份数据可以大大提高Redis的读性能,是Redis高可用或者分布式的基础

4.主从复制的配置

4.1 slaveof命令
在这里插入图片描述
取消复制
在这里插入图片描述
4.2 配置文件配置
修改Redis配置文件/etc/redis.conf

slaveof

masterip为主节点IP地址,masterport为主节点端口

slave

read

only yes

从节点只做读操作,不做写操作,保证主从设备数据相同

4.3 两种主从配置方式比较

使用命令行配置无需重启
Redis
,可以实现统一配置
使用配置文件方式配置不变于管理,而且需要重启
Redis

4.4 例子

有两台虚拟机,操作系统都是CentOS 7.5

一台虚拟机的IP地址为192.168.81.100,做master
一台虚拟机的IP地址为192.168.81.101,做slave

第一步:在192.168.81.101虚拟机操作

[root@mysql ~]# vi /etc/redis.conf # 修改Redis配置文件
bind 0.0.0.0 # 可以从外部连接Redis服务端
slaveof 192.168.81.100 6379 # 设置master的IP地址和端口

然后保存修改,启动Redis

[root@mysql ~]# systemctl stop firewalld # 关闭firewalld防火墙
[root@mysql ~]# systemctl start redis # 启动slave上的Redis服务端
[root@mysql ~]# ps aux | grep redis-server # 查看redis-server的进程
redis 2319 0.3 0.8 155204 18104 ? Ssl 09:55 0:00/usr/bin/redis-server 0.0.0.0:6379 root 2335 0.0 0.0112664 968 pts/

[root@mysql ~]# redis-cli # 启动Redis客户端
127.0.0.1:6379> info replication # 查看Redis的复制信息 查看192.168.81.101机器上的Redis的info

Replication

role:slave # 角色为slave
master_host:192.168.81.100 # 主节点IP为192.168.81.100
master_port:6379 # 主节点端口为6379
master_link_status:up
master_last_io_seconds_ago:5
master_sync_in_progress:0
slave_repl_offset:155
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

第二步:在192.168.81.100虚拟机上操作

[root@localhost ~]# systemctl stop firewalld # 关闭firewalld防火墙
[root@localhost ~]# vi /etc/redis.conf # 修改Redis配置文件
bind 0.0.0.0
然后保存修改,启动Redis
[root@localhost ~]# systemctl start redis # 启动master上的Redis
[root@localhost ~]# ps aux | grep redis-server # 查看redis-server进程
redis 2529 0.2 1.8 155192 18192 ? Ssl 17:55 0:00 /usr/bin/redis-server 0.0.0.0:6379
root 2536 0.0 0.0 112648 960 pts/2 R+ 17:56 0:00 grep --color=auto redis
[root@localhost ~]# redis-cli # 启动master上的redis-cli客户端
127.0.0.1:6379> info replication # 查看192.168.81.100机器上Redis的信息

Replication

role:master # 角色为主节点
connected_slaves:1 # 连接一个从节点

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

连接一个从节点

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-7jhd1LBk-1713357859049)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值