vlambda博客
学习文章列表

redis的高可用之主从复制

前言:主从复制大家都不会感到陌生,其原理和数据库的主从同步一样,主redis负责处理写操作,从redis则负责处理读操作,从而将读和写给分离开来,降低单台redis的请求压力,并提高redis的处理性能,达到高并发,高性能的状态。



1. 原理

    

有磁盘化复制:


    如下图,master处理所有写请求,slave处理读请求,第一次,salve会请求master将数据的持久化文件(如RDB)发送一份完整的给slave,然后slave读取RDB持久化文件加载数据。当master有新的写请求时,此时会将增加的持久化文件同步一份给slave,让slave做增加的加载,使master和slave的数据达到一致。


无磁盘化复制:

        下图为无磁盘化的主从复制,主从之间的数据复制使基于内存和网络,对比有磁盘,其复制速度快。但占带宽,目前处于测试阶段,不建议放在生产环境中使用。如果网络带宽大,或追求复制效率可以采用这种复制方式,直接从内存通过网络进行同步。


redis的高可用之主从复制


注:redis无磁盘化复制开启配置如下图,具体说明可以阅读其说明文档:


redis的高可用之主从复制





2. 环境准备


    redis的主从复制有多种搭建方案。如一主一从,一主两从,一主多从,树状模式等。下面我们要搭建的是最后常用的主从复制:一主两从。


    三台虚拟机或服务器,全部已经安装完毕redis

    主:192.168.101.136

    从1:192.168.101.134

    从2:192.168.101.135

    

  在每台服务器上,进入redis-cli输入:info replication 可以查看redis服务器的主从状态,如下图:

redis的高可用之主从复制

  


3. 搭建redis的主从复制


    主从复制的搭建,这里只需要修改两台slave的redis的配置文件,如下图:

redis的高可用之主从复制


      

简单说明:

    

replicaof 192.168.101.136 6379   #主redis的ip和端口


masterauth 123   #主redis的密码


修改完成后,将两台slave重启,即可。

以上redis的主从复制就配置完成 了。


此时你在任意一台服务器上再次输入 info replication即可看到主从配置信息如下图:


redis的高可用之主从复制

             

可以看到两台从节点已经和redis进行绑定了。



4. 验证主从复制


在主服务器上进行写:


redis的高可用之主从复制


然后从服务器读:


redis的高可用之主从复制



可以看到当主服务器有数据写入时,从服务器会同时更新数据。



5. 结尾

    以上就是redis的高可用之主从复制,其缺点也很明显,当master宕机后,我们的slave并不会选举出新的master,而是会一直等待master的重启或正常运行。此时就会系统的可用性比较差。关于新的master的选举可以通过redis的哨兵模式进行解决,从而达到系统的高可用更进一步。



redis的高可用之主从复制
redis的高可用之主从复制


redis的高可用之主从复制 redis的高可用之主从复制


redis的高可用之主从复制