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

作用:

  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. 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

    

redis--主从复制(读写分离)的更多相关文章

  1. redis 主从复制+读写分离+哨兵

    1.redis读写分离应用场景 当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能.redis ...

  2. redis主从复制读写分离

    主从复制,读写分离 Master/Slave 是什么 master写入 slave读取 能干嘛 读写分离,更加安全,性能提升 怎么玩 一主二仆.薪火相传.反客为主 周明老师,能够把长篇大论总结的很精辟 ...

  3. 基于Redis主从复制读写分离架构的Session共享

    1.搭建主从复制 第一步:将Redis拷贝到虚拟机上的指定文件夹内,此Redis作为主服务 第二步:将Redis拷贝到本机的指定文件夹内,此Redis作为从服务 第三步:修改主服务的配置文件(redi ...

  4. 基于Redis主从复制读写分离架构的Session共享(Windows Server)

    搭建主从复制 1.安装软件 下载Redis-x64-3.2.100.zip:https://github.com/MicrosoftArchive/redis/releases 第一步:将Redis拷 ...

  5. Redis 主从复制, 读写分离

    1: 是什么? 2: 经常是配置从库, 不配置主库 3.1: 每次与 master 断开之后都要从连, 除非你配置了redis.conf 3.2: 获取当前redis 服务信息 => info ...

  6. Redis的读写分离

    1.概述 随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力. 读写分离(主从复制)是一个比较简单的扩展方案,使用多台机 ...

  7. redis sentinel 读写分离

    redis sentinel 读写分离 https://www.jianshu.com/p/d1636776bb40

  8. mysql主从复制-读写分离

    mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...

  9. Mysql多实例安装+主从复制+读写分离 -学习笔记

    Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...

  10. windows下Redis 主从读写分离部署

    原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...

随机推荐

  1. MySQL设置各类字符集

    一.查看字符集编码: 登录mysql show variables like '%character%'; 二.修改编码: 编辑/etc/my.cnf ,设置后的配置文件如下: [root@node0 ...

  2. git 创建分支并提交代码

    1.查看所有分支 git branch -a 2.查看当前分支 git branch 3.新建一个分支 git branch feature-xx 4.切换到新建分支上面 git checkout f ...

  3. 完全卸载(删除)mac下自带的php

    /private/etc sudo rm -rf php-fpm.conf.defaultphp.ini php.ini.default /usr/bin sudo rm -rf php php-co ...

  4. WFP之WFP简介

    ·过滤引擎是WFP的核心组成部分,过滤引擎分为两大层:用户态基础过滤引擎和内核态过滤引擎.基础过滤引擎会与内核过滤引擎交互.·内核态过滤引擎是整个过滤引擎的主体,内部分为多个分层,每分层都代表着网络协 ...

  5. 文件上传报错java.io.FileNotFoundException拒绝访问

    局部代码如下: File tempFile = new File("G:/tempfileDir"+"/"+fileName); if(!tempFile.ex ...

  6. tomcat端口号被占用,且杀进程不能够杀掉解决办法

    在电脑上安装了zookeeper以后,配置好tomcat启动发现端口号8009端口号被占用,报错如下: 采用netstat –ano 查询所有进程查看或者根据端口号查进程netstat -ano |f ...

  7. 全局保存ajax请求到的数据

    var menuJson = (function() {        var result;        $.ajax({            type: 'get',            u ...

  8. 【Cantor表】蒟蒻题解

    原题:传送门 (上图摘自网站OpenJudge - NOI题库2.1 Cantor表) 本蒟蒻的题解,让大神们见笑了! 首先,进行找规律. 大家可以发现: 1.当分子是一的时候,且分子和分母的和是偶数 ...

  9. Vulkan SDK之Vertex Buffer

    A vertex buffer is a CPU-visible and GPU-visible buffer that contains the vertex data that describes ...

  10. 二十九、SAP中输出漂亮的表格

    一.代码如下 二.输出效果如下 *&---------------------------------------------------------------------* *& ...