<返回更多

【Redis高级篇】主从集群--并发

2023-08-31  微信公众号  程序猿小杨
加入收藏

一、简介

       单个redis的读写能力是有限的,并且存在不稳定性。当唯一的Redis服务宕机了,就没有可用的Redis服务了,另外当硬件出现问题,单机的数据便无法恢复。Redis集群的出现解决了单节点故障的问题,同时强化了Redis的读写能力(负载均衡)。

      主从复制:指一台Redis服务器的数据复制到其他的Redis服务器,前者为主节点(master),后者为从节点(slave)。数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,一个主节点可以有0或者多个从节点,但从节点只能有一个主节点。

      主节点提供读写服务,从节点提供读服务,多个从节点分担读负载,提高了redis的并发量。

二、搭集群建步骤

特别说明:window下6.2的安装包在文章最后有获取方式,大家如果需要,可以自行获取,linux的直接去官网下载即可。(官网访问地址:https://redis.io/download/#redis-downloads)

2.1、环境准备

IP 端口 角色
127.0.0.1 7001 Master
127.0.0.1 7002 slave
127.0.0.1 7007 slave

2.2、创建目录

 进入/tmp目录cd /tmp# 创建目录mkdir 7001 7002 7003

如图:

2.3、配置文件修改

拷贝文件:

 方式一:逐个拷贝cp redis-6.2.4/redis.conf 7001cp redis-6.2.4/redis.conf 7002cp redis-6.2.4/redis.conf 7003# 方式二:管道组合命令,一键拷贝echo 7001 7002 7003 | xargs -t -n 1 cp redis-6.2.4/redis.conf

修改参数:

#修改每个文件夹内的配置文件,#将端口分别修改为7001、7002、7003,将rdb文件保存位置都修改为# 自己所在目录(在/tmp目录执行下列命令sed -i -e 's/6379/7001/g' -e 's/dir .//dir /tmp/7001//g' 7001/redis.confsed -i -e 's/6379/7002/g' -e 's/dir .//dir /tmp/7002//g' 7002/redis.confsed -i -e 's/6379/7003/g' -e 's/dir .//dir /tmp/7003//g' 7003/redis.conf# 修改每个实例的声明IP# redis实例的声明  IPreplica-announce-ip 127.0.0.1# 1、逐个修改sed -i '1a replica-announce-ip 127.0.0.1' 7001/redis.confsed -i ' 1a replica-announce-ip 127.0.0.1' 7002/redis.confsed -i '1a replica-announce-ip 127.0.0.1' 7003/redis.conf# # 2、或者一键修改printf '%sn' 7001 7002 7003 | xargs -I{} -t sed -i '1a replica-announce-ip 127.0.0.1' {}/redis.conf# 开启主从关系# 可以使用replicaof(5.0版本之后的)或者slaveof(5.0版本之前的)命令# slaveof/replicaof <masterip> <masterport># 若选择7001为主机,其他为从机,则分别在7002和7003上配置replicaof 127.0.0.1 7001

启动:

 第1个redis-server 7001/redis.conf# 第2个redis-server 7002/redis.conf# 第3个redis-server 7003/redis.conf

查看集群状态:info replication

三、数据同步原理

3.1、全量同步

       当从节点(slave)启动成功并连接到主节点(master)后,会向主节点发送sync命令,请求数据同步。主节点接收到命令后会启动一个子进程,将数据写入数据文件中(RDB操作),待数据写入完毕后,会将数据文件传送给从节点,从节点接收到文件后保存到磁盘上,并将数据加载到内存中,完成一次全量复制。

3.2、增量同步

       在完成一次全量复制后,如果主节点收到写操作的命令时,会以异步方式将命令复制给从节点(在全量复制期间,如果主节点接收到了新的写操作命令,会先存入缓存,待从节点完成数据同步后,将新的写操作命令复制给从节点)。

四、总结

全量同步和增量同步的区别:

优缺点:

优点:

    1、实现了读写分离,缓解了主节点读操作的压力,提高了可用性,解决了单机故障问题;

    2、主从复制期间主节点与从节点都是非阻塞的方式,仍然可用。

缺点:

    1、如果主节点发生宕机,需要手动切换主节点;

    2、如果RDB文件过大,同步过程比较耗时。

五、Redis的window版本获取方式

      更多优秀文章,请关注个人微信公众号或搜索“程序猿小杨”查阅。然后回复:工具,可以获取最新的window版本的Redis6.2的安装包。

 

 

关键词:Redis      点击(22)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Redis相关>>>