码迷,mamicode.com
首页 > 其他好文 > 详细

Redis(4)---主从复制

时间:2018-06-04 23:29:17      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:自动   log文件   内容   kill   手动   weight   自己   重启   sla   

 Redis主从复制

一、环境搭建

     既然是主从复制,那肯定需要多个redis服务器,下面我先创建3个服务器,™的端口号分别是:6379、6380、6381。

  1、复制默认配置文件redis.conf,放到rediszhucong文件夹中,并重命名。

 技术分享图片

 根据每个端口号不同,重新配置conf文件

 (1)端口号

   技术分享图片

 (2)开启线程守护

  技术分享图片

 (3)Pid文件名字

技术分享图片

 (4)Log文件名字

技术分享图片

 (5)Dump.rdb名字

 技术分享图片

2、在redis-server目录下,读取配置启动这三个redis

    ./redis-server ../../rediszhucong/redis6379.conf
    ./redis-server ../../rediszhucong/redis6380.conf
    ./redis-server ../../rediszhucong/redis6381.conf

  查看进程

技术分享图片

  3、打开多个界面进行操作

./redis-cli -p 6379
./redis-cli -p 6380
./redis-cli -p 6381

     成功打开三个服务器

 技术分享图片

 

二、主从复制

   1、是什么?

    行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。

  2、 能干嘛?

   读写分离,更加安全,性能提升。

  3、怎么玩?

   一主二仆、薪火相传、反客为主

 (1)一主二仆

  1. 配从不配主
  2. slaveof 主库ip 主库端口

    我这里把6379当成主库,所以只要在6380和6381端口输入:

   技术分享图片

   技术分享图片

   通过info replication 查看是否配置成功。

  可以看到6379端口服务器,role角色是master,同时下面有两个从服务器

 技术分享图片

  再看6380端口,role显示为slave。

 技术分享图片

总结:

    (1)如果master服务器挂了,那么6380,和6381角色依旧是slave

     (2)如果master又好了,那么一切正常,下面还是有两个从,自己还是主。

     (3)如果slave服务器挂了,那么重启后,需要重新slaveof 选择master,除非在配置文件中配置

 (2)薪火相传

  新火相传的意思其实就是去中心化,现在只有80和81两台slave连接master,假如,有100台slave的话,那么master就压力很大了,所以redis又推出了新火相传的解决方案,上一台slave,可以下一台slave的master.

  79和80不改变,在81上配置如下:

127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK

(3)反客为主

   上面提到了,当master死机的时候,重写启动还是master,现在时,我是想当master死机的时候,让某一台从机变成主机,这里是,让80变成主机,

   只要当master死机器的时候,手动在80执行如下命令:

127.0.0.1:6380> SLAVEOF no one

   同时,81也要重新配置,配置80为主机

127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK

 

三、哨兵模式

   虽然说,反客为主,已经不错了,但总不能一旦master挂掉,我在手动去重新配置主服务器,和slave服务器吧。

   简单的说,哨兵模式就是反客为主的自动版,通过监控主机,当主机挂掉的时候,就几台从机中透过投票选出新的主机

  1、在 /etc/redis/目录下新建一个sentinel.conf文件(这个目录随意,但名字一定叫sentinel.conf)

  里面的内容为:

sentinel monitor host6379 127.0.0.1 6379 1 

 意思是6379端口的服务器是现在的master,host6379是自己任意取的名字,上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机

 2、启动sentinel.conf 文件

./redis-sentinel ../sentinel.conf 

 技术分享图片

 表示成功!

这是注意:

     就是当原来的master回来后,不是做独立的mater,而是做新主机的slave

   当我输入:SHUIDOWN命令,代表kill端口的redis,当我重新启动6379端口后,发现他的角色变成了:slave

技术分享图片

 

 想太多,做太少,中间的落差就是烦恼。想没有烦恼,要么别想,要么多做。少校【1】

 

Redis(4)---主从复制

标签:自动   log文件   内容   kill   手动   weight   自己   重启   sla   

原文地址:https://www.cnblogs.com/qdhxhz/p/9136401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!