Redis主从 部署和配置
一.主从简介
主从介绍
Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点,复制的数据流是单向的。
作用:
1.将一直备份主节点数据,当主节点挂掉,可以顶替主提供服务
2.将扩展主节点的读能力,做读写分离,分担压力
问题:
主故障,需要手动切换到从节点进行读写
主节点的存储能力,读写能力都受到单机限制,始终是一个单机
一主一从,如果要高并发,可以在从节点开启持久化,主节点不开启。但要注意主节点如果死掉,不要自动重启,否则数据是空的,会让从也同步为空。
一主多从,用于写少读多场景。不过如果是写多的就不适合了,那会导致将一个写操作同步到多个从,消耗带宽。
树状图,用于有钱的公司。一主2从,其中一个从又当主,下面又有2从。这样多级复制,多写并发高也没问题。
主从原理

slaveof本身是异步命令,节点只保存主节点信息后返回,后续复制流程在节点内部异步执行。主从节点复制成功建立后,可以使用info replication命令查看复制相关状态, 如下所示。
切换主从会清空从节点所有数据,从节点应配置为只读。主从复制间是异步的,主接到请求完成和复制给从是不相关的。主从要求配置一致,例如内存之类的。
过程:
- 保存从节点信息
- 主从建立sock连接
- 发送ping命令,如果堵塞或者没回应,会过段时间再发送
- 权限验证,如果主设置了密码,要发送账号密码
- 同步数据,如果中途有问题导致失败,将会部分同步,而不是删除当前数据从新同步
- 数据持续复制
偏移量
- redis主节点在写入数据时会记录字节长度,在
info replication命令中master_repl_offset字段显示 - 在从节点
info relication中的slave_repl_offset中可以看到从写入的字节长度。 - 可以对比主从的字节长度查看同步差异。
缓冲区
主节点在写入时除了发送给从,自己执行,还将添加到复制缓冲区,用于数据有问题进行补救。先进先出,只保存最新的几个。
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主从 部署和配置的更多相关文章
- Redis哨兵 部署和配置
目录 一.哨兵简介 哨兵介绍 哨兵原理 二.哨兵部署 环境介绍 哨兵配置 三.使用验证 一.哨兵简介 哨兵介绍 Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在 ...
- Redis 主从部署
Redis 主从部署 http://www.xuchanggang.cn/archives/978.html
- redis主从 以及认证配置
以前用redis用的很多,各种数据类型用的飞起,算是用得很溜了.不过那都是封装好的方法,自己直接调用.以前的公司比较规范,开发只是开发,很少去做跟运维相关的事情. 换了一份工作,不过这边项目刚开始起步 ...
- Redis主从和HA配置
1同步原理 摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/30/2364717.html "下面的列表清楚的解释了Redis ...
- Redis 主从 Replication 的配置,主从复制原理
概述 Redis的replication机制允许slave从master那里通过网络传输拷贝到完整的数据备份.具有以下特点: 异步复制.从2.8版本开始,slave能不时地从master那里获取到数据 ...
- redis主从+哨兵 安装配置二
实验环境: 192.168.2.201 centos7 master sentinel 192.168.2.202 centos7 slave sentinel 192.168.2.203 cen ...
- redis主从+哨兵 安装配置一
一.目的 实现redis的高可用. 二.同步过程 注意:当Master在后台把数据保存到快照文件完成之后,Master会把这个快照文件传送给Slave,而Slave则把内存清空后,加载该文件到内存中: ...
- nopCommerce 3.9 大波浪系列 之 使用Redis主从高可用缓存
一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...
- Redis主从高可用缓存
nopCommerce 3.9 大波浪系列 之 使用Redis主从高可用缓存 一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集 ...
随机推荐
- 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?
大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...
- Python变量和数据类型,类型转换
a.变量的定义 把数据分别用一个简单的名字代表,方便在接下来的程序中引用. 变量就是代表某个数据(值)的名称. 变量就是用来存储数据的,将不同的数据类型存储到内存 b.变量的赋值 变量名= 初始值 ...
- 使用VSCode编写,发布cnblogs
WriteCnBlog插件作者写的教程: https://www.cnblogs.com/caipeiyu/p/11774968.html
- 网络安全协议之IPsec
声明 本文仅发表在博客园,作者LightningStar. 简介[1] IPSec(Internet 协议安全)是一个工业标准网络安全协议,工作在OSI模型的第三层,即网络层,为IP网络通信提供透明的 ...
- MySQl安装图形界面
对于mysql的图形界面有很多个:1.MySQL GUI Tools MySQL GUI Tools是一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数 ...
- [atARC062F]Painting Graphs with AtCoDeer
求出点双后缩点,对于点双之间,显然不存在简单环,即每一个简单环一定在一个点双内部,换言之即每一个点双可以独立的考虑,然后将结果相乘 (对于点双之间的边任意染色,即若有$s$条边,还会有$k^{s}$的 ...
- 数字逻辑实践3->EDA技术与Verilog设计
本文属于EDA技术概述类文章 1 EDA技术及其发展 概念 EDA(Electronic Design Automation),指的是以计算机为工作平台,以EDA软件工具为开发环境,以PLD期间或者A ...
- HTML四种定位-固定定位
固定定位 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=&q ...
- Codeforces 193D - Two Segments(线段树)
Codeforces 题目传送门 & 洛谷题目传送门 感觉这个 *2900 并不难啊,为什么我没想出来呢 awa 顺便膜拜 ycx 一眼秒掉此题 %%% 首先碰到这类题有两种思路,一是枚举两个 ...
- DirectX12 3D 游戏开发与实战第八章内容(上)
8.光照 学习目标 对光照和材质的交互有基本的了解 了解局部光照和全局光照的区别 探究如何用数学来描述位于物体表面上某一点的"朝向",以此来确定入射光照射到表面的角度 学习如何正确 ...