Redis-主从复制

1,什么是主从复制

  主机数据更新后根据配置和策略,自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主

 

2,能干嘛

  1)读写分离性能扩展,

  2)容灾快速恢复

 

 3,搭建一个1主2从主从复制

  1),创建一个文件夹/myredis

  2)复制redis.conf文件到myredis文件夹中

  3)配置1主2从,创建三个配置文件(指定不同的端口号)

    *redis6379.conf

    *redis6380.conf

    *redis6381.conf

  4)在三个配置文件中写入你的内容

    在redis6379.conf 写入如下内容:

      include   /myredis/redis.conf

      pidfile     /var/run/redis_6379.pid

      port        6379

      dbfilename   dump6379.rdb

    在redis6380.conf文件中写入如下内容:

      

      include   /myredis/redis.conf

      pidfile     /var/run/redis_6380.pid

      port        6380

      dbfilename   dump6380.rdb

  

   在redis6381.conf文件中写入如下内容:

      

      include   /myredis/redis.conf

      pidfile     /var/run/redis_6381.pid

      port        6381

      dbfilename   dump6381.rdb

 

  5)appendonly 关闭

  6)启动三个redis服务

  7)查看三台服务器运行情况  info   replication ( redis-cli 中查看)    打印出主从复制相关信息

  8)配从库不配主库

    slaveof     <ip>   <port>

     成为某个实例的从服务器

     1,在6380和6381上执行:slaveof     127.0.0.1    6379    

 

3,复制原理

  1)当从服务器连接上主服务器后,从服务器想主服务器发送要数据同步的信号

  2)主服务器接收到从服务器发送过来的同步消息,把主服务器数据进行持久化,RDB,把RDB文件发给从服务器,从服务器拿到RDB文件进行读取

  3)每次主服务器进行写操作,和从服务器进行数据同步

 

 

4,薪火相传

  上一个 Slave 是下一个 slave 的 Master,Slave 同样可以接收其他 slave的链接和同步请求,那么该slave 作为链条中下一个的 master,可以有效减轻 master 的写压力,去中心化降低风险。

  用 slaveof   <ip>     <port>

  中途变更转向:会清除之前的数据,重新建立拷贝最新的

  风险是一旦某个slave 宕机,后面的 slave 都没法备份

  主机挂了,从机还是从机无法写数据了

 

5,反客为主

    当一个master宕机后,后面的 slave 可以立即升为master,其后面的 slave 不用做任何修改。

    用 slaveof no  one 将从机变为主机 (手动处理)

  

6,哨兵模式   

  反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

  

  使用步骤:

    1,调整为一主二仆模式,6379带着6380、6381

    2,在自定义的文件夹 /myredis 下面新建 sentinel.conf 文件,名字绝不能错

    3,配置哨兵,填写内容

      sentinel   monitor   mymaster    127.0.0.1   6379   1

        其中 mymaster  为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量

    4,启动哨兵

      在   /usr/local/redis/bin

      执行 redis-sentinel    /myredis/sentinel.conf

      redis 做压力测试可以用自带的 redis-benchmark 工具

      5,当主机挂掉,从机选举中产生新的主机

      那个从机会被选为主机?根据优先级别:slave-priority                新的版本是:replica-priority

      用主机启动后会变为从机

 

    6,复制延时

      由于所有的写操作都是先在 master 上操作,然后同步更新到 slave 上,所以从 master 同步到 slave 机器有一定的延迟,当系统很繁忙的时候,

      延迟问题会更加严重, slave 机器数量的增加也会使这个问题更加严重。

posted @ 2022-02-22 16:58  danny522  阅读(48)  评论(0)    收藏  举报