一、单节点实例

  单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis还是很轻松的,做为一个key/value数据库也是可以胜任的。单节点部署参照:http://www.cnblogs.com/yiwangzhibujian/p/7053840.html 中的初级教程。

二、主从模式(master/slaver)

  主从模式的简介和配置,此处不再说,参照下面的博客:Redis 主从模式详解

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

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

  对主从模式必须的理解(结论已经验证过,可以自行验证):

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

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

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

2.1 主从节点的缺点

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

  • master节点挂了以后,redis就不能对外提供写服务了,因为剩下的slave不能成为master

  这个缺点影响是很大的,尤其是对生产环境来说,是一刻都不能停止服务的,所以一般的生产坏境是不会单单只有主从模式的。所以有了下面的sentinel模式

三、sentinel模式(解决主从的监控,完成故障转移操作)

  sentinel模式的简介和配置,此处不再说,参照下面的博客:Redis 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的出现是为了解决单机Redis容量有限的问题,将Redis的数据根据一定的规则分配到多台机器。
cluster可以说是sentinel和主从模式的结合体,通过cluster可以实现主从和master重选功能,所以如果配置两个副本三个分片的话,就需要六个Redis实例。
因为Redis的数据是根据一定规则分配到cluster的不同机器的,当数据量过大时,可以新增机器进行扩容
  这种模式适合数据量巨大的缓存要求,当数据量不是很大使用sentinel即可。

四、cluster模式

  sentinel模式的简介和配置,此处不再说,参照下面的博客:Redis cluster模式详解

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

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

  这种模式适合数据量巨大的缓存要求,当数据量不是很大使用sentinel即可。

Redis:master/slave、sentinel、Cluster简单总结相关推荐

  1. Redis Master/Slave 实践

    本次我们将模拟 Master(1) + Slave(4) 的场景,并通过ASP.NET WEB API进行数据的提交及查询,监控 Redis Master/Slave 数据分发情况,只大致概述,不会按 ...

  2. Redis学习 master/slave(主从)、sentinel(哨兵)、Cluster简单总结

    一.主从模式(master/slaver) Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结 ...

  3. Redis: Redis的主从复制(Master/Slave),一主二仆,薪火相传,反客为主,哨兵模式sentinel

    命令: slaveof 主库ip  主库端口         配置从库 info replication                         查看redis连接情况 slaveof  no ...

  4. Redis作者摊上事了:多人要求修改Redis主从复制术语master/slave

    作者 | ANTIREZ.小智 近日,Redis 作者在 GitHub 上发起了一个"用其他词汇代替 Redis 的主从复制术语"的 issue.有人认为 Redis 中的术语 m ...

  5. Redis(八):Redis的复制(Master/Slave)

    Redis的复制(Master/Slave)目录导航: 是什么 能干嘛 怎么玩 复制原理 哨兵模式(sentinel) 复制的缺点 是什么 官网 行话:也就是我们所说的主从复制,主机数据更新后根据配置 ...

  6. redis主从复制_Redis 的主从复制(Master/Slave)

    1. 是什么 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略自动同步到备机的 master/slave 机制,Master以写为主,Slave 以读为主 2. 能干嘛 数据冗余:主从复制 ...

  7. Redis master和slave是如何实现数据同步的

    2019独角兽企业重金招聘Python工程师标准>>> Redis的主从同步机制可以确保redis的master和slave之间的数据同步.按照同步内容的多少可以分为全同步和部分同步 ...

  8. Redis 在CentOS 6上的 安装和部署以及redis的主从复制sentinel实现HA

    一.简介 Redis是基于内存的存储,所有数据都工作与内存中,基于键值存储(key-value store),经常拿来跟memcached做比较:memcached没有持久能力,Redis有持久能力, ...

  9. Redis高可用sentinel

    1.sentine介绍 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括 ...

最新文章

  1. 一致 先验分布 后验分布_遇到分布式一致性问题,咋整?
  2. 转帖:HttpStatusCode状态说明C#版
  3. python定义类()中写object和不写的区别
  4. 2021-04-28 Python可视化图表生成-Matplotlib绘图
  5. QT的QSemaphoreReleaser类的使用
  6. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面
  7. linux复制duo文件,Linux打印目录下多个文件
  8. 【英语学习】【Daily English】U11 Work L02 Just be honest
  9. 【R】ployroot函数求解多项式方程
  10. 光引发剂主要用途_食品级uv油墨光引发剂的安全使用
  11. freemarker框架 在easyui页面中处理数字 比如在页面得到1,234
  12. 你们是不是很缺大数据工程师?
  13. php rewrite重写,yaf 自定义重写路由rewrite
  14. LR运行负载测试场景-笔记
  15. 平凡的故事:年轻开发者的那些伤心事
  16. docker的安装--基于docker1.6
  17. mybatis-plus 自定义QueryWrapper(一)实现查询函数
  18. JSP+MySQL基于ssm的物理竞赛管理系统
  19. (XWZ)的python学习笔记Ⅵ——进程和线程
  20. ui设计和平面设计有什么区别-庞姿姿

热门文章

  1. Uva 11572 唯一的雪花
  2. 云计算学习(4-1)虚拟化技术
  3. 按照linux文件出现的时间来删除文件
  4. 如何在PowerPoint2007制造课件免费ppt模板下载
  5. Chromium on Android: 认识Chromium WebView
  6. ImageLoader displayers 之CircleBitmapDisplayer
  7. VMware中High Availability (HA),的含义
  8. 【Linux多线程】三个经典同步问题
  9. mac如何导入python第三方库_Mac系统中python idle导入第三方模块成功,ecplise导入python第三方模块失败解决方法...
  10. aspx ttf文件加载不出来_加载页面信息,刷不出来心态都崩了