Redis 入门到分布式 (七)Redis复制的原理与优化
一、目录
Redis复制的原理与优化
什么是主从复制
全量复制和部分复制
复制的配置
故障处理
开发运维常见问题
二、 什么是主从复制
1、单机有什么问题?
单机如果机器故障,那么久无法及时提供服务;
同时单机的内存等容量有限,无法支持耗能较大的应用;
如果应用的访问并发过大,单机环境无法支持那么大的QPS
所以,这时就需要多态服务器主机通过主从复制的机制提供更好的应用。
2、主从复制的作用:
1)一主一从模型:
左边的master是主节点,右边的slave是从节点。
如图,假如此时右边是一个空的redis,左边是一个有数据的redis,此时,我做一个复制的操作或复制的命令。那么,左边主节点的数据会向右边传过去。
此时,如果向左边的redis写数据,右边的slave也会有一些操作。
如图,左边有K1、K2、K3、.....、Kn,同样的,右边也会有K1、K2、K3、...、Kn。
它能够起到对主机进行备份的作用。可以为主机发生宕机时提供数据的支援。
2)一主多从模型:
一个master可以有多slave,也就是有多个数据的副本。有利于在master和一台slave或两台slave同时挂掉时,还能够有多个数据备份。
以及可以进行读写分离,达到流量分流。
示例:
3、主从复制作用:
数据副本
扩展读性能
小结:
1) 一个master可以有多个slave
2)一个slave只能有一个master
3)数据流向是单向的,master到slave
三、主从复制配置
1、实现主从复制的方式:
两种实现方式:
1)命令实现:
命令:
redis-6380 > slaveof 127.0.0.1 6379
OK
取消复制(恢复主节点地位):
已写入数据不做清除,原主节点数据也不再写入
命令:
redis-6380 > slaveof no one
OK
2、修改配置(主从配置):
slaveof ip port
在主节点标记从节点 ip port
slave-read-only yes
配置从节点只做读操作
3、比较
四、主从配置-操作
- 命令
- 配置
- 主从关系
- 主从数据
1、编辑配置文件redis.conf
1)主节点配置:
进程id
日志文件
关闭rdb
配置rdb文件名:区别主从
工作目录
2)从节点配置:
从节点复制主节点,指定主节点 ip port
其他配置和主节点一致,只需修改相关名称中的端口号6378为 6379即可
启动主服务器:
主节点状态:
启动从服务器:
从节点状态:
同步测试:
Redis 入门到分布式 (七)Redis复制的原理与优化的更多相关文章
- redis入门(15)redis的数据备份和恢复
redis入门(15)redis的数据备份和恢复
- redis入门(14)redis集群下的数据分区存储
redis入门(10)redis集群下的数据分区存储
- Redis 入门到分布式 (五) Redis持久化的取舍和选择
个人博客网:https://wushaopei.github.io/ (你想要这里多有) Redis持久化的取舍和选择 持久化的作用 RDB AOF RDB和AOF的选择 一.持久化的作用 ...
- Redis 入门到分布式 (二)API的理解和使用
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 内容: 通用命令 单线程架构 数据结构和内部编码 一.常用的通用命令: keys 计算所有的 ...
- redis入门指南(五)—— 复制与哨兵
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 一.复制 1.在复制中,数据库分为两类,一类主数据库,一类从数据库,主库用来读写,从库用来读,主 ...
- redis入门指南(七)—— 安全、协议、管理工具及命令属性
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 安全 1.可以使用bind参数绑定一个地址,使redis只接受这个地址的连接. 2.使用requ ...
- <Redis> 入门X 分布式锁
分布式其实就是多进程的程序,当多个进程访问一个资源,会造成问题: 1.资源共享的竞争问题 2.数据的安全性 分布式锁的解决方案: 1.怎么去获取锁 数据库 zookeeper redis 2.怎么释放 ...
- Redis 入门到分布式 (八)Redis Sentinel
个人博客网:https://wushaopei.github.io/ (你想要这里多有) sentinel-目录 主从复制高可用 安装配置 实现原理 架构说明 客户端连接 常见开发运维问题 一. ...
- Redis 入门到分布式 (一)Redis初识
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Redis特性目录 Redis的特性: 速度快 持久化 多种数据结构 支持多种编辑语言 功能丰富 简 ...
随机推荐
- Spring Cloud学习 之 Spring Cloud Hystrix(流程分析)
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 我们还是从流程图入手: 创建HystrixCommand或者HystrixObserv ...
- 某科学的PID算法学习笔记
最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...
- Spring JDBC 框架使用JdbcTemplate 类的一个实例
JDBC 框架概述 在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等.但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQ ...
- repo使用总结—从入门到入门
文章目录 1 what's repo 2 官方文档 Repo 命令参考资料 help 帮助 init 初始化 sync 同步所有项目文件 upload 提交更改 diff download foral ...
- 如何使用apt-get在ubuntu系统上安装OpenJDK 8
文章目录 添加ppa仓库 设置openjdk版本 查看java 版本 Android 8.1 系统编译的时候需要安装OpenJDK 8,这里如果可以自己下载源码编译安装,当然本想编译Android系统 ...
- Linux常用命令详解—基于CentOS7
## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...
- search(14)- elastic4s-统计范围:global, filter,post-filter bucket
聚合一般作用在query范围内.不带query的aggregation请求实际上是在match_all{}查询范围内进行统计的: GET /cartxns/_search { "aggs&q ...
- Java并发II
Java并发 J.U.C图 一.线程的安全性 当多个线程访问某个类的时候,不管运行环境采用何种方式调度或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都可以表现出正确的行 ...
- Puppeteer笔记(一):Puppeteer简介
一.Puppeteer简介 Puppeteer是NPM库,它提供了NodeJS高级API来控制Chrome.Puppeteer 默认以无头(无界面)方式运行,但也可以配置为运行有界面的Chrome. ...
- Appium自动化(13) - 详解 Keyboard 类里的方法和源码分析
如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 Keyboard 类在 a ...