一.主从简介

主从介绍

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. R数据分析:潜类别轨迹模型LCTM的做法,实例解析

    最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...

  2. Nginx大厂面试需要掌握多少v1.21.3

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com Nginx官网 最新版本为1.21.3 Nginx (engine x) 是一个开源的.高性能的HTTP和反向代理web服务 ...

  3. CF1290E Cartesian Tree

    考虑笛卡尔树的意义: 一个点在笛卡尔树中的子树,代表以他为最小/最大值的区间. 所以一个点的子树大小,一定是类似到达序列边界或者被一个比他更大的数隔离. 考虑记录 \(l_i,r_i\) 为第 \(i ...

  4. 洛谷 P5331 - [SNOI2019]通信(CDQ 分治优化建图+费用流)

    题面传送门 首先熟悉网络流的同学应该能一眼看出此题的建模方法: 将每个点拆成两个点 \(in_i,out_i\),连一条 \(S\to in_i\),容量为 \(1\) 费用为 \(0\) 的边 连一 ...

  5. CSP-S 2021 游记

    福兮祸之所伏 胜利是一种肯定,代表我应该在这条路上坚定不移地走下去. 胜利也是一种危机,它粉饰太平.养虎自齧,并把人最丑陋的一些想法暴露出来:虚荣心.骄傲心都在这个过程中被放大,懒惰心.自满心也找到了 ...

  6. VS调用别人的COM组件的问题

    调用第三方的COM组件,记得要先在管理员cmd执行:regsvr32 xxxx.dll 没执行之前运行 HRESULT hr = pComm.CreateInstance("xxxx.Com ...

  7. 压力测试工具——apchebench(简称ab)

    ab的原理 ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx.li ...

  8. Flume消费内外网分流配置的Kafka时遇到的坑

    网上有铺天盖地的文章,介绍如何将Kafka同时配置成公网地址.内网地址,以实现内外网分流,看着都很成功. 但我们通过Flume消费一个配置了内外网分流的Kafka(版本0.10.1)集群时遇到了坑,却 ...

  9. 第三个基础框架 — springMVC — 更新完毕

    1.什么是springMVC? 还是老规矩,百度百科一下 这里面说了一堆废话,去官网瞄一下 官网网址:https://docs.spring.io/spring-framework/docs/curr ...

  10. 关于redis HSCAN count参数不生效的问题

    这的确是个坑,HSCAN是为了处理大量数据而设计的,可能也是因为这个原因,在数据量较少的情况下count参数并不会生效,具体阈值是多少并没有实际测验过不过可以断定的是一百条数据一下估计是不会生效的.