一.主从简介

主从介绍

Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点,复制的数据流是单向的。

作用:

1.将一直备份主节点数据,当主节点挂掉,可以顶替主提供服务

2.将扩展主节点的读能力,做读写分离,分担压力

问题:

主故障,需要手动切换到从节点进行读写

主节点的存储能力,读写能力都受到单机限制,始终是一个单机

一主一从,如果要高并发,可以在从节点开启持久化,主节点不开启。但要注意主节点如果死掉,不要自动重启,否则数据是空的,会让从也同步为空。

一主多从,用于写少读多场景。不过如果是写多的就不适合了,那会导致将一个写操作同步到多个从,消耗带宽。

树状图,用于有钱的公司。一主2从,其中一个从又当主,下面又有2从。这样多级复制,多写并发高也没问题。

主从原理



slaveof本身是异步命令,节点只保存主节点信息后返回,后续复制流程在节点内部异步执行。主从节点复制成功建立后,可以使用info replication命令查看复制相关状态, 如下所示。

切换主从会清空从节点所有数据,从节点应配置为只读。主从复制间是异步的,主接到请求完成和复制给从是不相关的。主从要求配置一致,例如内存之类的。

过程:

  1. 保存从节点信息
  2. 主从建立sock连接
  3. 发送ping命令,如果堵塞或者没回应,会过段时间再发送
  4. 权限验证,如果主设置了密码,要发送账号密码
  5. 同步数据,如果中途有问题导致失败,将会部分同步,而不是删除当前数据从新同步
  6. 数据持续复制

偏移量

  1. redis主节点在写入数据时会记录字节长度,在info replication命令中master_repl_offset字段显示
  2. 在从节点info relication中的slave_repl_offset中可以看到从写入的字节长度。
  3. 可以对比主从的字节长度查看同步差异。

缓冲区

主节点在写入时除了发送给从,自己执行,还将添加到复制缓冲区,用于数据有问题进行补救。先进先出,只保存最新的几个。

info replication

repl_backlog_active:1  #开启复制缓冲区
repl_backlog_size:1048576 #缓冲区最大长度
repl_backlog_first_byte_offset:7479 #起始偏移量,计算当前缓冲区可用范围
repl_backlog_histlen:1048576 #已保存数据的有效长度。

id节点

每个节点分配一个40位的运行id,用于区分。重启后id号将变化,导致从节点全量复制。可以在重启后用redis-cli debug reload命令加载RDB,使得id号不变。

二.主从部署

环境介绍

[Redis-Server-mastr]
主机名 = host-1
系统 = centos-7.3
地址 = 1.1.1.1
软件 = redis-3.2.9 6379 [Redis-Server-slave]
主机名 = host-2
系统 = centos-7.3
地址 = 1.1.1.2
软件 = redis-3.2.9 6379

主从配置

1.参照Centos7源码部署Redis3.2.9,每台机器部署redis。

2.配置master(host-1操作)

vim redis.conf

bind 1.1.1.1 127.0.0.1 #配置监听
requirepass root #配置密码

3.配置slave(host-2操作)

vim redis.conf

slaveof 1.1.1.1 6379 #配置主的地址和端口
masterauth root #主的密码

临时主从

1.查看会发现都是master(都操作)

redis-cli -p 6379 info | grep role

2.命令行切换到从(host-2操作)

redis-cli -p 6379

slaveof 1.1.1.1 6379

特点

在当前slave掉线后,再启动会从服务器会读取自己本地的 rdb 回复数据,而不会去自动链接主服务

三.主从测试

1.写入数据

redis-cli(host-1操作)

set name xx

2.查看从数据,是否同步过来了(host-2操作)

get name

Redis主从 部署和配置的更多相关文章

  1. Redis哨兵 部署和配置

    目录 一.哨兵简介 哨兵介绍 哨兵原理 二.哨兵部署 环境介绍 哨兵配置 三.使用验证 一.哨兵简介 哨兵介绍 Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在 ...

  2. Redis 主从部署

    Redis 主从部署 http://www.xuchanggang.cn/archives/978.html

  3. redis主从 以及认证配置

    以前用redis用的很多,各种数据类型用的飞起,算是用得很溜了.不过那都是封装好的方法,自己直接调用.以前的公司比较规范,开发只是开发,很少去做跟运维相关的事情. 换了一份工作,不过这边项目刚开始起步 ...

  4. Redis主从和HA配置

    1同步原理 摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/30/2364717.html "下面的列表清楚的解释了Redis ...

  5. Redis 主从 Replication 的配置,主从复制原理

    概述 Redis的replication机制允许slave从master那里通过网络传输拷贝到完整的数据备份.具有以下特点: 异步复制.从2.8版本开始,slave能不时地从master那里获取到数据 ...

  6. redis主从+哨兵 安装配置二

    实验环境: 192.168.2.201 centos7 master sentinel 192.168.2.202 centos7 slave   sentinel 192.168.2.203 cen ...

  7. redis主从+哨兵 安装配置一

    一.目的 实现redis的高可用. 二.同步过程 注意:当Master在后台把数据保存到快照文件完成之后,Master会把这个快照文件传送给Slave,而Slave则把内存清空后,加载该文件到内存中: ...

  8. nopCommerce 3.9 大波浪系列 之 使用Redis主从高可用缓存

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

  9. Redis主从高可用缓存

    nopCommerce 3.9 大波浪系列 之 使用Redis主从高可用缓存   一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集 ...

随机推荐

  1. 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?

    大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...

  2. Python变量和数据类型,类型转换

    a.变量的定义 把数据分别用一个简单的名字代表,方便在接下来的程序中引用. 变量就是代表某个数据(值)的名称. 变量就是用来存储数据的,将不同的数据类型存储到内存   b.变量的赋值 变量名= 初始值 ...

  3. 使用VSCode编写,发布cnblogs

    WriteCnBlog插件作者写的教程: https://www.cnblogs.com/caipeiyu/p/11774968.html

  4. 网络安全协议之IPsec

    声明 本文仅发表在博客园,作者LightningStar. 简介[1] IPSec(Internet 协议安全)是一个工业标准网络安全协议,工作在OSI模型的第三层,即网络层,为IP网络通信提供透明的 ...

  5. MySQl安装图形界面

    对于mysql的图形界面有很多个:1.MySQL GUI Tools MySQL GUI Tools是一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数 ...

  6. [atARC062F]Painting Graphs with AtCoDeer

    求出点双后缩点,对于点双之间,显然不存在简单环,即每一个简单环一定在一个点双内部,换言之即每一个点双可以独立的考虑,然后将结果相乘 (对于点双之间的边任意染色,即若有$s$条边,还会有$k^{s}$的 ...

  7. 数字逻辑实践3->EDA技术与Verilog设计

    本文属于EDA技术概述类文章 1 EDA技术及其发展 概念 EDA(Electronic Design Automation),指的是以计算机为工作平台,以EDA软件工具为开发环境,以PLD期间或者A ...

  8. HTML四种定位-固定定位

    固定定位 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=&q ...

  9. Codeforces 193D - Two Segments(线段树)

    Codeforces 题目传送门 & 洛谷题目传送门 感觉这个 *2900 并不难啊,为什么我没想出来呢 awa 顺便膜拜 ycx 一眼秒掉此题 %%% 首先碰到这类题有两种思路,一是枚举两个 ...

  10. DirectX12 3D 游戏开发与实战第八章内容(上)

    8.光照 学习目标 对光照和材质的交互有基本的了解 了解局部光照和全局光照的区别 探究如何用数学来描述位于物体表面上某一点的"朝向",以此来确定入射光照射到表面的角度 学习如何正确 ...