redis主从复制

发布时间:2024年01月21日

分布式系统涉及到一个非常关键的问题,就是单点问题,如果某一个服务器程序,只有一个节点,也就是说只是搞一个物理服务器来部署这个服务器程序,就会出现以下问题

1)可用性问题:如果这个机器挂了,意味着服务器就中断了,内存满了,硬盘坏了,无法启动,网线断了,导致机器无法正常工作,就意味着redis服务中断了,此时其他节点想要使用这台机器上的数据,就无法访问;

2)性能和系统的并发量也是有限的,一个请求需要消耗CPU,内存,磁盘,网络带宽,一个主机毕竟提供硬件资源是有限的

1)所以引入分布式系统,主要是解决上述的单点问题,在分布式系统往往希望有多个服务器来部署redis服务从而构成一个redis集群,此时就可以让这个集群给整个分布式系统中其他的服务提供更稳定也更高效的数据存储功能;

2)假设有三个物理服务器,称之为是三个节点,分别部署了一个redis-server进程,此时就可以把其中的一个节点称之为是主节点,另外两个节点称之为是从节点,从节点上的数据要和主节点保持一致

3)本来在主节点上保存着一堆数据,引入从节点以后,就是要把主节点上面的数据,复制出来放到从节点上面去,后续在主节点上面对于数据有任何的修改,都会把这样的修改同步到从节点上面去,从节点就是从节点的副本,在Redis主从模式中,从节点上面的数据,不允许修改,只是允许读数据;

4)由于从节点上面的数据都是时刻和主节点是保持一致的,因此其他的客户端从从节点这里面读取数据,和从主节点这里面读取数据是没有本质区别的,如果后续有客户端来读取数据了,就可以从上述节点中,随机挑选一个节点,给这个客户端提供读取数据的服务,引入了更多的计算资源,自然就能够支撑的并发量也就大幅度提高了;

5)主从模式主要是针对读操作进行并发量和可用性的提升,而写操作的话无论是可用性还是高并发,都是十分依赖于主节点的,主节点又不能搞多个,但是在实际操作中,读操作还是比写操作更频繁;

正常来说,配置redis主从结构,需要首先启动多个redis服务器,正常来说,每一个redis服务器程序,应该在一个单独的主机上才是分布式系统,但是我们是可以在一个云服务器主机上运行多个redis-server进程的,但是这多个进程之间redis-server的端口号是不同的

1)本来redis-server的端口就是6379,此时就不可以让新启动的redis-server进程继续使用6379了,只需要修改端口和是以后台的方式运行即可

上面直接可以通过cp命令来进行复制操作cp /etc/redis.conf ./redis1.conf即可

2)当前这几个节点没有构成主从结构,redis-cli -p 端口号 -a 密码,下面的配置都是以127.0.0.1充当云服务器的主节点IP,修改完成配置文件以后重新启动redis生效

3)此时进行搭配的时候需要注意

文章来源:https://blog.csdn.net/weixin_61518137/article/details/135729500
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。