在K8S上部署Redis集群时突然遇到一个(sentinel哨兵模式)概念,感觉Redis的概念还是很多的,什么主从模式、sentinel模式、集群模式的,一下子都晕了,我觉得还是有必要先理清这些基本概念。具体的部署步骤就不在这赘述了。

目录

一、单节点实例

二、主从模式(master/slaver)

2.1 主从节点的缺点

三、sentinel模式

四、cluster模式


一、单节点实例

  单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis还是很轻松的,做为一个key/value数据库也是可以胜任的。

二、主从模式(master/slaver)

  主从模式的简介和配置,此处不再说。

  首先谈谈我对主从模式的必要性:

主从模式的一个作用是备份数据,这样当一个节点损坏(指不可恢复的硬件损坏)时,数据因为有备份,可以方便恢复。
另一个作用是负载均衡,所有客户端都访问一个节点肯定会影响Redis工作效率,有了主从以后,查询操作就可以通过查询从节点来完成。
  对主从模式必须的理解(结论已经验证过,可以自行验证):

  • 一个Master可以有多个Slaves
  • 默认配置下,master节点可以进行读和写,slave节点只能进行读操作,写操作被禁止
  • 不要修改配置让slave节点支持写操作,没有意义,原因一,写入的数据不会被同步到其他节点;原因二,当master节点修改同一条数据后,slave节点的数据会被覆盖掉
  • slave节点挂了不影响其他slave节点的读和master节点的读和写,重新启动后会将数据从master节点同步过来
  • master节点挂了以后,不影响slave节点的读,Redis将不再提供写服务,master节点启动后Redis将重新对外提供写服务。
  • master节点挂了以后,不会slave节点重新选一个master

  对有密码的情况说明一下,当master节点设置密码时:

  • 客户端访问master需要密码
  • 启动slave需要密码,在配置中进行配置即可
  • 客户端访问slave不需要密码

2.1 主从节点的缺点

  主从模式的缺点其实从上面的描述中可以得出:

master节点挂了以后,redis就不能对外提供写服务了,因为剩下的slave不能成为master
  这个缺点影响是很大的,尤其是对生产环境来说,是一刻都不能停止服务的,所以一般的生产坏境是不会单单只有主从模式的。所以有了下面的sentinel模式。

三、sentinel模式

  sentinel模式的简介和配置,同上不再赘述。

  sentinel的中文含义是哨兵、守卫。也就是说既然主从模式中,当master节点挂了以后,slave节点不能主动选举一个master节点出来,那么我就安排一个或多个sentinel来做这件事,当sentinel发现master节点挂了以后,sentinel就会从slave中重新选举一个master。

  对sentinel模式的理解:

  • sentinel模式是建立在主从模式的基础上,如果只有一个Redis节点,sentinel就没有任何意义
  • 当master节点挂了以后,sentinel会在slave中选择一个做为master,并修改它们的配置文件,其他slave的配置文件也会被修改,比如slaveof属性会指向新的master
  • 当master节点重新启动后,它将不再是master而是做为slave接收新的master节点的同步数据
  • sentinel因为也是一个进程有挂掉的可能,所以sentinel也会启动多个形成一个sentinel集群
  • 当主从模式配置密码时,sentinel也会同步将配置信息修改到配置文件中,不许要担心。
  • 一个sentinel或sentinel集群可以管理多个主从Redis。
  • sentinel最好不要和Redis部署在同一台机器,不然Redis的服务器挂了以后,sentinel也挂了
  • sentinel监控的Redis集群都会定义一个master名字,这个名字代表Redis集群的master Redis。

  当使用sentinel模式的时候,客户端就不要直接连接Redis,而是连接sentinel的ip和port,由sentinel来提供具体的可提供服务的Redis实现,这样当master节点挂掉以后,sentinel就会感知并将新的master节点提供给使用者。

  sentinel模式基本可以满足一般生产的需求,具备高可用性。但是当数据量过大到一台服务器存放不下的情况时,主从模式或sentinel模式就不能满足需求了,这个时候需要对存储的数据进行分片,将数据存储到多个Redis实例中,就是下面要讲的。

四、cluster模式

  sentinel模式的简介和配置,此处不再重复,看管担待=_=。

  cluster的出现是为了解决单机Redis容量有限的问题,将Redis的数据根据一定的规则分配到多台机器。对cluster的一些理解:

cluster可以说是sentinel和主从模式的结合体,通过cluster可以实现主从和master重选功能,所以如果配置两个副本三个分片的话,就需要六个Redis实例。
因为Redis的数据是根据一定规则分配到cluster的不同机器的,当数据量过大时,可以新增机器进行扩容
  这种模式适合数据量巨大的缓存要求,当数据量不是很大使用sentinel即可。

Redis 部署方式(单点、master/slaver、sentinel、cluster) 概念与区别相关推荐

  1. Redis 部署方式(单点、master/slaver、sentinel、cluster) 概念与区别 -- 敲黑板!!!=_=

    在K8S上部署Redis集群时突然遇到一个(sentinel哨兵模式)概念,感觉Redis的概念还是很多的,什么主从模式.sentinel模式.集群模式的,一下子都晕了,我觉得还是有必要先理清这些基本 ...

  2. Python Web部署方式总结

    2019独角兽企业重金招聘Python工程师标准>>> 学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情.相比起来,Pytho ...

  3. java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part7(Redis常见使用(部署)方式:单机模式、主从模式、哨兵模式、集群模式)~整起

    Redis持久化:RDB.AOF是针对存储在一台服务器上的数据由于存储过程被打断而发生丢失的情况的.此时,咱们肯定要考虑到,所有鸡蛋都放在一个篮子里是会出问题的. 如果服务器发生了宕机,由于数据恢复是 ...

  4. K8S搭建单Master集群(二进制部署方式)

    一. 安装要求 (1)多台服务器,操作系统 CentOS7.6-86_x64 (2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多 (3)可以访问外网,需要拉取镜像,如果服务 ...

  5. SpringBoot使用Redis 数据访问(单点、集群、哨兵、连接池、Pipline、分布式框架Redisson、解决方案)

    目录 Redis 文献资料 用Redis编程 Redis模块API 教程和常见问题解答 管理 嵌入式和物联网 故障排除 Redis集群 其他基于Redis的分布式系统 在SSD和永久性存储器上进行Re ...

  6. Redis集群:哨兵(Sentinel)

    Redis Sentinel机制与用法说明(哨兵模式) 1.主Redis与各个从Redis之间能够实现高可用(监控.自动故障迁移等),这个委托给redis-sentinel来实现.  2.业务代码中为 ...

  7. redis部署架构总结

    windows下面部署 主从复制:https://blog.csdn.net/u010648555/article/details/79427606 Sentinel模式:https://blog.c ...

  8. Redis 由浅入深 (2) - Redis哨兵和集群的介绍和部署方案(看完这篇redis部署再也不是问题)

    文章目录 Redis的三种部署方案 1. 单机 部署 单机运维 2.主从哨兵 主从结构部署 主从部署 redis 哨兵主从部署 哨兵部署 部署注意事项 3.集群 集群介绍 数据分区 集群的限制 集群部 ...

  9. Spark支持三种分布式部署方式

    目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内 ...

最新文章

  1. 在CentOS 6.8 x86_64的nginx 1.10.3上开启http2功能
  2. tablednd保存 php,jqgrid中使用tableDnd插件,jqgridtablednd插件
  3. python reader循环_Python的for循环和while循环。
  4. python如何区分文件类型_python通过文件头判断文件类型
  5. POJ3695(矩形切割中等题)
  6. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 语义角色标注
  7. c#复制包含子目录文件夹代码
  8. 字节跳动最新简单算法面试题
  9. python 自动下载脚本之家,python网页自动化脚本私服过验证
  10. windows 控制台cmd乱码(及永久修改编码)的解决办法
  11. java7 3dm下载_我的世界 1.7.10最新forge极简整合包
  12. 电脑怎么录制玩王者荣耀的过程
  13. 如何用PowerPoint压缩ppt文件大小
  14. 摆脱“咖喱味”,让Win11的右键菜单回归经典
  15. UVM-sequence和sequencer
  16. 关于苏宁易购的好坏与网购的心酸苦逼史,有同感的请继续顶起
  17. 电脑控制手机教你实现多个手机同时自动安装卸载软件
  18. L1、L2正则VS L1、L2 loss
  19. centos 安装、配置metis
  20. MyISAM和InnoDB的区别

热门文章

  1. 机器学习中的过拟合与欠拟合
  2. 深度学习的过拟合与欠拟合问题的介绍与解决方案
  3. DirectX11与DirectX12在古墓丽影暗影中的表现
  4. 《Web全栈工程师的自我修养》读后感
  5. 许嵩的60句感人歌词,道出了学生时代实在爱情的伤与痛~
  6. 走进Linux 操作系统(之一)
  7. k8s kubeadm 安装
  8. java 快递项目_基于SpringBoot开发的Java快递代拿系统
  9. 【2021牛客暑期多校训练营7 】 xay loves count
  10. 物联网信息安全复习笔记(从头开始,两天速成)