一 单机版

分析:

无论多少用户,都访问这一台服务器 。服务器一旦挂了,所有用户都无法访问。风险很大,一般不会有人使用。

二 主从模式(master/slaver)

分析:

主从模式中,

无论多少用户,都访问这一台服务器。主服务器有读写的能力,从服务器一般只有读的能力。从服务器会定时或在满足一定条件时同步主服务器的数据。这样可以保证数据的安全性。

主服务器一旦崩溃。将不再向用户提供服务。从服务器如果崩溃,将不会影响主服务器和其他从服务器的正常运行。

三 sentinel模式

分析:

此种模式下用户访问的是sentinel服务器,sentinel服务器会将请求发给redis主服务器,从服务器会同步主服务器的数据。

如果sentinel服务器崩溃,则无法直接向用户提供服务。

如果redis主服务器崩溃,sentinel会检测到。并在redis的从服务器中选择一个将其升级为主服务器。从而保证继续提供服务。

四 cluster模式

分析:

首先需要引入一个叫【槽位】的名词,槽位的范围是0~16384。每个key都会通过计算规则得到唯一的槽位值。

如上图所示,redis一共有两台主服务器,每台主服务器有两台从服务器。

redis1的槽位值为0~100,redis2的槽位值为101~16384。

举个例子 ,用户做了sey(k1,v1);的操作。 服务器的处理过程是:先计算k1的槽位置,得到结果为4568。根据此槽位置所处的服务器。服务器会将此操作分配到Redis2的主服务器上。所以redis2上会执行sey(k1,v1)的操作,redis2下面的从服务器会进行同步数据的操作。

其他分析:

此模式支持灵活扩展,可以添加或移除redis主服务器。主服务器之间不允许存在相同的槽位值。所有主服务器槽位值的并集应该是0~16384;

每台redis主服务器和其从服务器都是一个小集群。当一台主服务器崩溃时。系统会选择一个从服务器将其升级为redis主服务器。

Redis的几种集群方式分析的更多相关文章

  1. redis的三种集群方式

    redis有三种集群方式:主从复制,哨兵模式和集群. 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用 ...

  2. Redis实战(十三)Redis的三种集群方式

    序言 能聊聊redis cluster集群模式的原理吗 资料 https://www.cnblogs.com/51life/p/10233340.html Redis 集群分片原理

  3. redis解决方案之三种集群模式的概念与部署

    上篇文章为大家总结了redis命令并讲述了持久化,今天我们来看一下redis的三种集群模式:主从复制,哨兵集群,Cluster集群 本篇文章先介绍redis-cluster集群模式,然后再依次介绍它的 ...

  4. 一文掌握Redis的三种集群方案

    在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性.可靠性要求较高,则需要引入Redis的集群方案.虽然现在各大云平台有提供缓存服务可以直接使用,但了解一 ...

  5. Redis 的 3 种集群方案对比

    数据持久化 主从复制 自动故障恢复 集群化 数据持久化本质上是为了做数据备份,有了数据持久化,当Redis宕机时,我们可以把数据从磁盘上恢复回来,但在数据恢复之前,服务是不可用的,而且数据恢复的时间取 ...

  6. 架构师必备:Redis的几种集群方案

    结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster. codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis ...

  7. 三种Tomcat集群方式的优缺点分析

    三种Tomcat集群方式的优缺点分析 2009-09-01 10:00 kit_lo kit_lo的博客 字号:T | T 本文对三种Tomcat集群方式的优缺点进行了分析.三种集群方式分别是:使用D ...

  8. Spring-Session实现Session共享Redis集群方式配置教程

    循序渐进,由易到难,这样才更有乐趣! 概述 本篇开始继续上一篇的内容基础上进行,本篇主要介绍Spring-Session实现配置使用Redis集群,会有两种配置方式,一种是Redis-Cluster, ...

  9. 超详细,多图文介绍redis集群方式并搭建redis伪集群

    超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...

随机推荐

  1. 将jar包发布到maven中央仓库

    将jar包发布到maven中央仓库 最近做了一个swagger-ui的开源项目,因为是采用vue进行解析swagger-json,需要前端支持,为了后端也能方便的使用此功能,所以将vue项目编译后的结 ...

  2. vscode--常用插件&同步

    1.setting.json文件 { "files.autoSave": "off", "extensions.ignoreRecommendatio ...

  3. bootstrop日历

    https://blog.csdn.net/cuixiaobo521/article/details/77880633

  4. 详解封装源码包成RPM包

    源码编译安装是最常用安装软件方式,可是面对工作量巨大时候就需要我们的RPM包上场了,统一的模块,一键安装.在面对一定数量的服务器上,RPM就可以为我们节省大量的时间. RPM可以在网上下载,但是当我们 ...

  5. nCOV 数据简要分析 (0326)

    nCOV 数据简要分析 (0326) matlabdatacov 简介 碰巧看到了数据上传, 正在跑数据的我想着要不拟合一下看看, 然后, 就做了两个小时, 这里做一个简单的记录过程, 后续可能做在线 ...

  6. C/C++ 程序执行时间

    C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t.在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进 ...

  7. C6 C7的开机启动流程

    C6开机启动流程 1.内核引导,加电自检(通电后检查内核):检查bios的配置,检测硬件 装好系统之后才会进行以下内容 MBR 引导 (3.2.1...) GRUB菜单 (选择不同的系统)(按e,进入 ...

  8. Java ArrayList工作原理及实现

    http://yikun.github.io/2015/04/04/Java-ArrayList%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE% ...

  9. JS省城级联

    2019独角兽企业重金招聘Python工程师标准>>> 这里是HTML内容 <label class="control-label col-md-2 col-sm-3 ...

  10. 使用cpplint检测代码规范

    0. cpplint - python脚本, google使用它作为自己的C++代码规范检查工具: 1. 安装 方法一: $sudo apt-get install python-pip $pip i ...