复述,搭建主从同步和读写分离实际操作

  介绍

这篇文章主要讲解了“复述,搭建主从同步和读写分离实际操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“复述,搭建主从同步和读写分离实际操作”吧!

复述分布式基础主从同步

前面我们介绍了主从同步基础,今天我们动手来搭建一个复述的主从服务器,然后到读写分离。

首先我们准备一下材料,Redis5.0Windows版本和复述的管理工具,如果在网上找不到的同学可以关注下面的公众号然后回复:redis5.0

注意:我们的操作和展示都是在Windows操作系统下进行的,想在Linux操作系统下玩的同学不要慌,虽然有些许的不同,但是思路和配置都是一样的。

<节> <强>配置服务器IP和端口   ,
  

复述,搭建主从同步和读写分离实际操作

我们把复述,复制到这三个文件夹下,不多解释看名字就能知道我是要做一主多从的结构。

我们进到这个文件夹里面找到【redis.windows.conf】这个文件,建议通过记事本打开,这里我们修改主服务器的ip和端口号

<节>
 #修改ipbind  192.168.1.219 #修改端口port  6000年
  

保存后后我们运行这个【redis-server.exe】,启动服务后发现端口号木有变,这里我教大家一招,直接选中【redis.windows.conf】然后拖到【redis-server.exe】上,这时运行的复述,服务端口就变成了6000 .

按照此步骤我们把从服务器一个的端口号配置成7001年,从服务器B的端口配置成7002

然后在RedisManage工具上登录这两个服务器,此时我们做完了基本的准备工作,下面我们正式进入。

<节> <强>配置主从同步   

从服务器一个配置同步服务器信息,此配置项为:slaveof[主ip][主端口)

<节>
 slaveof  192.168.1.219  6000 
   <节>配置好了后我们重启从服务器,然后在主服务器中添加一个关键 <节>
祝辞set  name 芒果
   <>节然后检测主从是否完成同步

复述,搭建主从同步和读写分离实际操作

<节> <强>添加子节点   

接着我们把从服务器B也配置slaveof启动,此处在原理篇讲过,添加子节点,主服务器会启动子线程保存一个快照,通过插座同步共享到子节点。

<节> <强>读写分离   

我们先想一个问题,前面在主服务器添加一个名字,然后很快就同步到其他的从服务器,那么如果我在从服务器写一个新的关键是不是也得同步到其他服务器上?这样会导致几个问题,如果从服务器写一个关键还没来得及同步到其他服务器就挂掉了,重启后我们发现从服务器和主服务器上的关键不同,又比如每台服务器都可以写,那么我们的服务器非常混乱,不是在同步的过程中就是在同步的路上,这样加重了<强>服务器的压力和<强> IO读写的性能消耗

为了降低这样的复杂性问题,在设计的时候我们只允许<强>一个服务器做一件事情强,也就是主服务器负责写数据,从服务器负责提供读数据,所以读写分离就出来了。

<节>
 #从服务器配置只读slave-read-only 是的
  

配置完后我们来写一个关键试试

<节>
祝辞set  name  li" READONLY 你停下来# 39;t  write  against  a  read  only 副本!”
  

<强>配置日志文件

如果复述,异常了我们如何排查问题呢?对了,这里我们需要配置上日志文件,异常信息一个都不落下

<节>
 #日志级别loglevel 注意#日志文件logfile “redis.log" 
   <节> <强>配置增量同步   

如果我们的从服务器掉线重启,从服务器会和主服务器对比数据,如果没有写关键,那么就不会执行同步,反之会同步整个缓存快照,数据量如果非常大,那么同步快照简直就是地狱,所以复述,提供一个复制缓冲区。

这个结构是一个环状结构,用来保存最新复制的命令。这样在从服务器离线的时候,不需要完全复制主服务器的数据,如果可以执行部分同步,只需要把缓冲区的部分数据复制给从服务器,就能恢复正常复制状态。缓冲区的大小越大,从服务器离线的时间可以更长,复制缓冲区只有在有奴隶连接的时候才分配内存。没有从服务器的一段时间,内存会被释放出来,默认1 m

复述,搭建主从同步和读写分离实际操作