欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 主从复制(Redis的特性)

主从复制(Redis的特性)

2025/2/24 20:48:47 来源:https://blog.csdn.net/2202_76092586/article/details/144896474  浏览:    关键词:主从复制(Redis的特性)

背景:在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满足故障恢复和负载均衡等需求。Redis 也是如此,它为我们提供了复制的功能,实现了相同数据的多个 Redis 副本。


什么是主从复制?


  在redis若干个节点中,有的是主节点,有的是从节点。这里如果,我们部署了3个 redis-server,其中有一个主节点,有2个从节点。这里从节点必须听主节点的,从节点只允许进行读操作,主节点进行写操作。

  从节点上的数据会根据主节点上的数据变化而变化,从节点的数据要和主节点上的数据保持一直。如果,我们从节点挂了一个,那么对于我们的服务影响是很小的,从其他从节点或者是主节点上读取数据即可,那么我们的主节点如果挂了,那么真就不能写数据了。

如图:


建立复制


  首先呢要想配置,redis的主从复制的结构,至少要启动3个redis服务程序,如果没有3台服务器,那么我们可以,通过修改复制配置文件的方式,来启动3台redis服务程序。其实这里我们是通过修改端口号来启动3个不同端口号的redis服务程序。分配了不同的进程。

这个操作比较简单,我就不掩饰了。


建立主从结构


如图以下有三种构建方式:

主节点是master,从节点是slave,在这里我们还需要将从节点修改其 daemonize 为 yes,目的是将从节点以后台进程的方式执行。

这里我设置的两个从节点的端口号,分别为 6380 和 6381。

如以下命令:

redis-server /etc/redis/redis-slave.conf --port 6380 --slaveof 127.0.0.1 6379

表示 6380 为6379的从节点。

通过 netstat -nlpt 确保三个 Redis 均已正确启动。
如图所示:

可以通过 info replication 命令查看复制相关状态
如图:
以上是主节点的状态。
以上是副节点的状态。

断开复制


  slaveof 命令不但可以建立复制,还可以在从节点执行 slaveof no one 来断开与主节点复制关系。

在这里我们如果断开6381从节点与主节点的复制,会怎么样呢?

断开复制主要流程:
1)断开与主节点复制关系。
2)从节点晋升为主节点。
从节点断开复制后并不会抛弃原有数据,只是无法再获取主节点上的数据变化。
如图:
6380这个节点看着像是主节点,其实本质上还是从节点。
通过 slaveof 命令还可以实现切主操作,将当前从节点的数据源切换到另⼀个主节点。执行
slaveof {newMasterIp} {newMasterPort} 命令即可。
切主操作主要流程:
1)断开与旧主节点复制关系。
2)与新主节点建立复制关系。
3)删除从节点当前所有数据。
4)从新主节点进行复制操作。

以上只是说明了主从复制,后面还会讲到主从复制的具体流程。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词