Redis集群(读写分离、哨兵机制、Cluster集群)
文章目录
- 概念概述
- 一、主从复制
- 原理
- 优点
- 缺点
- 同步原理
- 二、哨兵(Sentinel)机制
- 原理
- 哨兵的三大工作任务
- 优点
- 缺点
- 三、Redis内置集群(Cluster模式)
- 原理
- 集群搭建(实践出真知嘛,加油!朋友们)
- 需要的环境
- 主从复制模式搭建
- 哨兵机制集群搭建
- 内置集群搭建(Cluster集群)
- Cluster集群维护
- 分片重哈希
- 移除节点
- 添加节点
概念概述
- 首先我们要知道的是,Redis实际上有三种集群方案:
主从复制模式、哨兵机制(又称为Sentinel模式)、集群模式(又称为Cluster模式) - 其次我们得知道为什么需要集群模式
实际上,单机Redis的读写速度非常快,可以支持大量用户的访问,虽然Redis的性能很高,但是对于大型网站来说,每秒钟所需要获取的数据远远超过单台redis服务所能承受的压力
所以我们需要一种方案来解决单台Redis服务性能不足的问题
一、主从复制
原理
- 主从复制方案:对读写能力扩展,采用读写分离的方式解决性能瓶颈。
- 即运行一个新的服务器(简称为从服务器),从服务器与主服务器进行连接,然后主服务器发送数据副本,从服务器通过网络根据主服务器的数据副本进行准实时更新(具体的更新速度取决于网络带宽),主服务器可以进行读写操作,当写操作导致数据发生变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。
- !!注意,一个主服务器可以有多个从服务器,但一个从服务器只能有一个主服务器。这就像一个老大可以有很多小弟,但一个小弟不能同时跟多个老大一样。
- 这样我们就有额外的从服务器来处理读请求,通过将读请求分散到不同的从服务器上面进行处理,用户可以从新添加的从服务器上获得额外的读查询处理能力
- 并且Redis通过持久化功能,保证了即使服务器宕机或重启的情况下也不会丢失数据,因为持久化会把内存中的数据保存到硬盘上,重启会从硬盘上加载数据。
优点
- 主从复制,主机会自动将数据同步到从机,实现了读写分离
- 从服务器提供只读操作,主服务器提供读读写操作
- 从服务器同样可以接受其他从服务器的连接和同步请求,这样可以有效的分载主服务器的同步压力
- 主服务器是以非阻塞的方式为从服务器提供服务,所以在主从同步期间,客户端依然可以提交查询或修改请求
- 从服务器也是以非阻塞的方式完成数据同步的,在同步期间,如果有客户端提供查询请求,Redis则返回同步之前的数据
缺点
- Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或手动切换前端的IP才能恢复(即人工介入)
- 主机宕机后如果有部分数据没有及时同步到从机,更换主机IP后会导致数据不一致的问题
- 如果多个从机断线,需要重启的时候,如果在同一时间段进行重启,多个slave重启,都会发送sync请求并进行主机全量同步,那就会导致主机 IO剧增从而主机宕机
- Redis较难支持在线扩容,在集群容量达到上限时在线扩容就会变得艰难
同步原理
redis2.8之前使用的是sync同步命令,redis2.8之后使用的是psync命令
两者的不同在于:sync仅支持全量复制过程,psync支持全量和部分复制
- 更改命令的原因在于,如果服务器在主从复制的过程中出现了断线,重连之后需要全量同步一次,但如果断线时间非常短,可能会出现主从之间数据还是一致的,简单的进行了全量同步,就造成了主从服务器之间cpu,内存,网络带宽方面的浪费
- 使用psync命令,对于服务器断线重连主服务器这种情景,从服务器重连之后,发送psync命令给主服务器,主服务器会根据该从服务器的同步情况,决定是只需将断线期间的写入同步给该服务器,还是需要进行全量同步
因为本文重点不是这个,所以具体的PYSNC核心设计改日再写,Redis集群(读写分离、哨兵机制、Cluster集群)相关推荐
- MongoDB高性能、高可用之副本集、读写分离、分片、操作实践
2019独角兽企业重金招聘Python工程师标准>>> 关于MongoDb 1.MongoDB是一个开源的.基于分布式的.面向文档存储的非关系型数据库. 2.是非关系型数据库当中功能 ...
- Redis高可用之主从复制、哨兵、cluster集群
一 Redis高可用 1.什么是高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%.99.99%.99.999%等等). 高可用的计算公 ...
- Redis高可用——主从复制、哨兵模式、集群
文章目录 一.Redis高可用 1.什么是高可用 2.Redis的高可用技术 二.Redis主从复制 1.Redis主从复制的作用 2.主从复制的流程 三.主从复制的搭建 实验准备 1.所有主机安装R ...
- 浅谈高性能数据库集群——读写分离
作者 陈彩华 贝聊Java后端工程师 文章转载交流请联系 caison@aliyun.com 复制代码 最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下. 本文主要介绍 ...
- 浅谈高性能数据库集群 —— 读写分离
1. 读写分离概述 2. 适用场景 3. 引入的系统复杂度问题 最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下. 本文主要介绍高性能数据库集群读写分离相关理论,基本架 ...
- 使用mysql-proxy 快速实现mysql 集群 读写分离
使用mysql-proxy 快速实现mysql 集群 读写分离 2011-12-29 17:03 目前较为常见的mysql读写分离分为两种: 1. 基于程序代码内部实现:在代码中对select操作分发 ...
- Redis源码解析(15) 哨兵机制[2] 信息同步与TILT模式
Redis源码解析(1) 动态字符串与链表 Redis源码解析(2) 字典与迭代器 Redis源码解析(3) 跳跃表 Redis源码解析(4) 整数集合 Redis源码解析(5) 压缩列表 Redis ...
- Redis主从、哨兵、 Cluster集群一锅端
1. Redis 主从 面试官经常会问到Redis的高可用.Redis高可用回答包括两个层面,一个就是 数据不能丢失,或者说尽量减少丢失 ;另外一个就是保证 Redis服务不中断 . 对于尽量减少数据 ...
- Redis主从、哨兵、 Cluster集群一锅端!
天跟小伙伴们一起学习Redis的主从.哨兵.Redis Cluster集群. Redis主从 Redis哨兵 Redis Cluster集群 1. Redis 主从 面试官经常会问到Redis的高可用 ...
- 一篇教会你,Redis主从、哨兵、 Cluster集群。
前言 大家好,今天跟小伙伴们一起学习Redis的主从.哨兵.Redis Cluster集群. Redis主从 Redis哨兵 Redis Cluster集群 1. Redis 主从 面试官经常会问到R ...
最新文章
- POJ 1704 Georgia and Bob (Nim游戏变形)
- 纹理过滤模式中的Bilinear、Trilinear以及Anistropic Filtering
- WebSphere MQ 自动启动发送方通道
- USTC English Club Note20211223
- Val编程-界面编程
- 【华为云动态】华为云DevCloud助力DevOps标准体系建设
- 图片的 css sprite的应用思考
- 【回归预测】基于matlab麻雀算法SSA优化混合核极限学习机KELM回归预测【含Matlab源码 1646期】
- 安全帽检测/人脸识别系统国标GB28181协议云服务EasyGBS搭建智慧工地 助力智慧建筑生态圈
- MSSQL · 实现分析 · SQL Server实现审计日志的方案探索
- C#爬取数据_详细篇
- mysql 修改密码为 123456 教程
- 关于沉没成本的座谈会
- 我,晋升为阿里P9,越想越后怕...
- 笔记本通过扩展坞扩展显示器,显示器显示无信号
- js网页雪花效果jquery插件
- bgp 建立邻居发送的报文_bgp邻居建立过程及报文详解.doc
- 运筹学可以应用的行业和领域
- Xilinx(K7)和CycloneV之间的光纤通信设置
- 非线性系统辨识:非线性 ARX 和 Hammerstein-Wiener
热门文章
- 洛谷 P1010 [NOIP1998 普及组] 幂次方 Python题解
- html5网页流行色,Pantone 2018流行色:紫外光色(附紫色的UI设计作品)
- # 我的家乡--永平风景
- 电脑硬件:谈谈cpu后边数字及字母的意思
- 基于GPT硬盘模式重装win10操作系统
- 机器学习--最大熵模型
- 主题模型结合词向量模型(Improving Topic Models with Latent Feature Word Representations)
- 美国大学统计专业申请策略
- python读取图片文字-Python3实现获取图片文字里中文的方法分析
- Latex中编译时出现File `xxx.sty‘ not found.错误的解决方法
- MongoDB高性能、高可用之副本集、读写分离、分片、操作实践