【Redis】Redis学习(二) master/slave、sentinel、Cluster简单总结

  项目中用到Redis,因此准备学习一下,感受Redis的概念仍是不少的,什么主从模式、sentinel模式、集群模式的,一会儿都晕了,我以为仍是有必要先理清这些基本概念再说。html

1、单节点实例

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

2、主从模式(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模式。学习

3、sentinel模式

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

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

  对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实例中,就是下面要讲的。

4、cluster模式

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

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

  • cluster能够说是sentinel和主从模式的结合体,经过cluster能够实现主从和master重选功能,因此若是配置两个副本三个分片的话,就须要六个Redis实例。
  • 由于Redis的数据是根据必定规则分配到cluster的不一样机器的,当数据量过大时,能够新增机器进行扩容

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

相关文章
相关标签/搜索