Redis学习(四) -- Redis的主从复制

1、什么是主从复制?

           上一篇学习文章,Redis的持久化方案保证了即使redis服务挂掉或者重启redis服务也不会导致数据丢失,因为有了持久化方案后,重启redis服务时会将硬盘上的数据恢复到内存中,但是当redis服务器的硬盘损坏时也可能会导致数据丢失,通过redis的主从复制机制,就可以避免这种单点故障。如下图:

说明:

  •     主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。
  • 主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。

  • 只有一个主redis,可以有多个从redis。
  • 主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求。

  • 一个redis可以即是主又是从,如下图:

              

2、主从复制设置

   由于是练习,所以我就在一台服务器上模拟进行主从复制。

第一步:复制出一台从机(复制bin目录即可):命令:cp bin/ bin2 -r

          

第二步:修改从机的redis.conf,为从机设置主机ip以及主机port

   语法:slaveof masterip masterport

   

第三步:设置从机的端口号为 6380;(因为是用同一台服务器进行练习,主从ip都一样,所以就设置主从port不一样)

    

第四步:清除从机中的持久化文件;(这一步操作是因为我刚才复制bin文件夹时,将主机中的持久化文件一块儿复制过来了,为达到真正的主从复制效果,将其删除)

       

第五步:启动从机

       

启动之后可以看到,当前已经存在6379和6380两个端口的服务了。

第六步:启动从机客户端;  

           此时要注意,如果直接使用./redis-cli命令启动,则启动的还是默认的ip(127.0.0.1)和端口(6379)的客户端,我们从机端口已经改成了 6380,所以此处启动命令改为   ./redis-cli -p 6380

以上六步操作,我们的主从复制设置就已经完成了。

3、验证

主机端口:6379     从机端口:6380

我们先在主机中进行操作redis数据库,然后看从机中是否会同步主机的操作结果。

首先确定主机和从机数据库中都为空:

            

然后操作主机数据库,新增一条记录

接下来在从机数据库中看刚才在主机中的操作有没有同步过来。

那我们尝试在从机上进行写操作看看

失败,(error) READONLY You can't write against a read only slave.  就是说从机上不能执行写操作,只可以进行读操作。

到此,主从复制就完成了,可以得出结论:

               主机数据一旦发生增删改操作,那么从机会将数据同步到从机中

               从机只有读权限,没有写权限。

还有一个主从切换,等学习完后再更新吧,吃饭去吃饭去,好饿!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

redis学习另外几篇:

Redis的简介以及安装启动

Redis的五种数据类型以及相关操作命令

Redis的持久化方案

主从切换

猜你喜欢

转载自blog.csdn.net/pavel101/article/details/81485393