• redis--主从复制(读写分离)


    应用程序对服务器大量的读写,服务器很可能会宕机,导致数据丢失。为了解决这一问题就有了主从复制。

    作用:

      1:防止数据丢失

      2:提高系统的吞吐量

    主从复制:从服务器复制主服务器中的数据。

    读写分离:应用程序在主服务器写,在从服务器读。

    配置:

      1:手动

      2:哨兵模式

    手动:一主二仆(一种说法,可以有多个仆),星火相传(一个主服务器可以传到另一个服务器,另一个服务器可以传到别的服务器),反客为主(操作,从节点变为主节点)

    我自己在根目录创建一个app文件夹,里面有redis,又新建了一个rediscluster文件,在rediscluster下创建了3个文件夹node1,node2,node3

    ①:准备多台服务器(用三个不同的redis服务进程模拟三个机器,指定不同的配置文件)

      创建三个文件夹(node1,node2,node3),把redis.conf拷贝到三个文件夹下

    ②:修改各个文件夹下redis.conf文件

        修改内容:

          端口号(port)

          守护进程(daemonize 改为yes,默认为no)

          进程文件(pidfile)  /app/rediscluster/node1/redis.pid 

          日志文件(logfile)/app/rediscluster/node1/redis.log

          dir   /app/rediscluster/node1/

      

          这里启动多个redis命令:

             cd /app/rediscluster

             redis-server node1/redis.conf

        启动redis-cli -h -p

           -h 机器名(本地:127.0.0.1)

           -p 端口号

           redis-cli -p 7777(7777是我设置的redis端口号)

         查看reids进程

          ps -ef | grep redis

        目前,这3个redis没有任何联系

     配置主从(2种,配从不配主,从节点只能读,主节点能读能写):node1:端口号:6666 node2:端口号:7777 node3:端口号:8888

    查看配置:info replication

    方法一:用命令配置

      在从节点上面执行  slaveof host port

    方法二:修改配置文件

      在redis.conf中,找到slaveof(默认是注释的,把注释删掉)

        slaveof 127.0.0.1 port(父节点的端口号)

    复制原理:

    1. Slave启动成功连接到master;
    2. slave向master会发送一个sync命令;
    3. Master接到命令后执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
    4. 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
    5. 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
    6. 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
    7. 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

        

  • 相关阅读:
    websocket协议
    LeakCanary 中文使用说明
    编程习惯1
    Spring事务管理(详解+实例)
    微信 JS API 支付教程
    mi面试题
    最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
    .Net 高效开发之不可错过的实用工具
    手机版开发框架集合
    node.js建立简单应用
  • 原文地址:https://www.cnblogs.com/niexinlei/p/9688321.html
Copyright © 2020-2023  润新知