主从复制
主从复制原理
Redis集群中有很多Redis服务器,这些Reids服务器分为主服务器和从服务器。

  1. 从服务器会向主服务器发送命令:SYNC命令。
  2. 主服务器接收到SYNC命令后,开始执行GBSAVE命令生成RDB文件(快照文件)并使用缓冲区来记录此后的写命令
  3. 主服务器GBSAVE命令执行完毕后,会将次快照发送给所有的从服务器。而且在发送期间会继续记录写命令。
  4. 从服务器接收到主服务器发送过来快照文件,会加载这个快照文件,并执行。
  5. 主服务在发送完快照文件后会向从服务器发送缓冲区命令。
  6. 从服务器完成对快照文件的载入,也会开始接收主服务器的命令,并执行。
  7. 从服务器和主服务器执行相同的命令

通过这种方式完成主从复制。
优点:
保证主服务器和从服务器数据同步,实现读写分离,主服务器用来执行写命令,而从服务器用来提供数据(读)。

缺点:
Redis不具备自动容错和恢复功能,主从机器的宕机都会导致前段部分读写请求失败,导致数据部分丢失。

  • 哨兵模式

当主服务器宕机了,哨兵模式可以让一个从服务器升级为主服务器,以便保证继续提供服务。
优点:
提高Redis的高可用,让系统更健壮,可用性更高。
缺点:
Redis很难支持在线扩容。如果集群容量达到上线,这时扩容就会变得很复杂。

Redis-Cluster集群
主从复制有一个很大的缺陷:主服务器和从服务器存储的数据一样,这是一种浪费。
redis3.0后提供Redis-Cluster集群,这是一种分布式存储的集群方式:每一个Reids服务器上存储不同的数据,提高高可用。
Redis在去保存数据时,会通过一个算法计算key的结果,通过这个结果和插槽(16834)(Hash槽:0-16383)做运算,将运算结果作为这个数据
的存储位置,这样就可以将数据保存到不同的服务器上,保证分布式存储。

Redis集群(主从复制)的更多相关文章

  1. Redis集群主从复制(一主两从)搭建配置教程【Windows环境】

    如何学会在合适的场景使用合适的技术方案,这值得思考. 由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基 ...

  2. Docker部署Redis集群(主从复制 高可用)

    环境 vmware12+centos7 关于环境安装可以参考我的另一篇博客 https://www.cnblogs.com/pengboke/p/13063168.html 1.清理环境 我这里用的虚 ...

  3. redis高可用、redis集群、redis缓存优化

    今日内容概要 redis高可用 redis集群 redis缓存优化 内容详细 1.redis高可用 # 主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个sl ...

  4. 【Redis学习之八】Redis集群:主从复制

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 Redis集群分类: 主从复制 R ...

  5. Redis 集群_主从复制_哨兵模型

    1 redis集群简介 1.1 集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 1.1.1 使用redis集群的必要性 问题:我们已经部署好了 ...

  6. redis集群之主从复制集群的原理和部署

    最近在复盘redis的知识,所以本文开始希望介绍下redis的集群架构.原理以及部署:本文主要介绍redis的主从复制集群,包括其架构模型,原理,高可用等: 一.主从集群的介绍   redis的主从复 ...

  7. Redis集群的安装测试(伪分布模式 - 主从复制)

    想跑一下Redis集群,但是没有那么多服务器,所以使用伪分布式模式,模拟一下,记录一下安装过程. 软件: redis-3.0.3.tar.gz 集群正常工作至少需要3个主节点(本示例创建6个节点,3主 ...

  8. Redis 集群的合纵与连横

    之前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题. 如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题.就像我们做数据库分库 ...

  9. 就publish/subscribe功能看redis集群模式下的队列技术(一)

    Redis 简介 Redis 是完全开源免费的,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中 ...

  10. Redis 集群方案

    根据一些测试整理出来的一份方案(转自http://www.cnblogs.com/lulu/): 1. Redis 性能 对于redis 的一些简单测试,仅供参考: 测试环境:Redhat6.2 , ...

随机推荐

  1. Linux学习 --- 网络基础知识

    1.1  IP地址 IP地址由两部分组成  网络号和主机号 .网络号为IP地址的高位组成,而主机号是IP地址的低位组成,两个的大小取决于网络的类型. IP地址根据网络的地址不同分为:A类,B类,C类, ...

  2. 由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)

    背景 前段时间项目组用到的8.0.0版本的keycloak被安全部门同事扫出来一个中危漏洞: A flaw was found in Keycloak, where it is possible to ...

  3. 超棒的良心工具-OCR工具集

    使用平台:Windows 虽然是OCR工具,但多了一个"集"字,原因在于该软件内置了搜狗网络OCR.本地离线OCR,不用key,还原天若OCR操作. 一句话:免去申请注册key登录 ...

  4. selenium最常用的基本方法

    1.打开,关闭浏览器 打开chrome浏览器:webdriver.Chorme() 打开Firefox浏览器:webdriver.Firefox() 关闭当前浏览器窗口:driver.close() ...

  5. c语言创建线程的函数封装

    头文件xxx.h #include <stdlib.h> #include <pthread.h> #include <string.h> typedef int ...

  6. Shiro 身份认证绕过漏洞 CVE-2022-32532

    前言 Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证.授权.密码和会话管理.使用 Shiro 的易用 API,您可以快速.轻松地保护任何应用程序 -- 从最小 ...

  7. Rust字符串处理

    Trim移除字符串开始末尾的字符串 fn main() { let s = " Hello Rust! "; // trim移除字符串开始末尾的空格 // "Hello ...

  8. kali WiFi相关研究(学习中...)

    基础环境准备: 笔记本一台E470c(内置网卡 Qualcomm Atheros QCA9377 802.11ac) # 经过测试创建虚拟AP不成功 外置网卡一个:UGREEN 绿联AC1300M,芯 ...

  9. Pods与Nodes

    Pod是Kubernetes抽象出来表示一组应用容器(比如Docker.rkt),还有这些容器共享的资源.这些资源包括: 共享存储,比如Volumes 网络,比如独立的集群IP地址 如何去运行每个容器 ...

  10. CocosCreator基于jenkins自动构建

    1.新建Item,输入名称后选择Freestyle project后点击确定 2.配置项目,自定义工作目录 3.配置源码管理和要摘取的分支 4.构建触发器选择github触发 5.构建选择执行wind ...