8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

(十九)高并发redis学习笔记:主从模式和cluster模式简谈

来源:本站原创 浏览:115次 时间:2021-10-16


文章目录
  • 1、 主从模式
  • 2、 哨兵模式
  • 3、 Redis集群(cluster)模式
  • 4、选择redis cluster 还是 replication + sentinal?


redis主要有几种模式:


  • 主从模式
  • 哨兵模式
  • 集群模式
1、 主从模式

基于主从复制的特性,一般有一个主节点,多个从节点,默认是我们可以从主节点写,写入的数据会自动备份到从节点,可以从从节点读取数据。
这样做的好处是,解决单台redis的读请求的瓶颈,可以横向扩容读请求,相当于做到了读请求的负载均衡。
从节点也是可以支持写的,但是不会复制到其他节点,所以我们基本不这么干。

这样做的缺陷是什么:
1.redis的主节点很重要,挂了就没有了,一挂整个集群都有问题。
2.redis写请求很多怎么办?我还不想用消息队列,就想在redis上实现(实际上写请求很多的时候可以适当用消息队列)

2、 哨兵模式

哨兵模式,和主从模式不是互斥的,反而他们一般是同时存在的,为了提高redis的高可用性存在的。如果是单独的主从架构,那么主节点挂了,问题就很大了。一般服务器宕机,停电或者硬件有问题,主节点可能会有问题。有问题的时候,哨兵模式能够帮我们快速地纠正。
哨兵一般是依靠主从模式的,也就是在主从结构上,加上了哨兵模式,一旦主节点宕机,就可以通过几个哨兵选举,产生新的主节点,自动调整过来。哨兵本质上也是redis,但是它不做数据存储,只负责监控,通知,故障转移等工作,一般部署的端口和redis是不一样的,可以选择部署在同一个机器上。
哨兵主要有以下功能:

  • 监控:不断检测主从服务器是否正常在工作中
  • 通知:可以通过api来通知管理员或者其他应用程序,告知我们redis出现了问题。
  • 自动故障转移:如果sentinel系统判断出master down掉了,就是不可用了,就会执行故障转移过程,通过投票选举把slave节点提升成为master节点,其他slave节点成为新master节点的从节点。
  • 提供配置:客户端连接sentinels,查询主节点的时候,提供最新的master的地址。

这样一来算是很大程度上解决了单机的高可用问题。

3、 Redis集群(cluster)模式

哨兵只是解决了高可用的问题,但是上面的主从结构还有一个问题,就是写请求只能一台机器,那么如果写请求的并发很大呢?这样的结构明显是不能满足需求的,所以就有了redis cluster结构。

redis cluster可以有很多个mster node,而且每一个master都可以多个slave node。这样的结构可以做读写分离,但是一般不这么干,一般只在master上读,在master上写,slave只是作为数据备份。可以做读写分离,但是一般不这么做而已。,Jedis对cluster的读写分离支持不是很好。
这样也可以满足高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master。
我们只要基于redis cluster去搭建redis集群即可,不需要手工去搭建replication复制+主从架构+读写分离+哨兵集群+高可用。cluster已经集成了这些能力。

至于能不能读写都在同一个机器上呢?如何保障呢?
其实这就是redis的hash算法啦,可以做到的,这就是redis的hash槽。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。每个master节点会负责一部分hash槽,比如三个节点A,B,C。

  • A持有0 到 5500号哈希槽
  • B持有5501 到 11000 号哈希槽
  • C持有11001 到 16384号哈希槽

每个key就会hash后,根据hash值打到对应的机器上,如果删除节点A,那么A的槽就会移动到B,C上,如果添加一个D的话,那么会把A,B,C的部分槽移动到D上面,这样拓展就比较方便了。

4、选择redis cluster 还是 replication + sentinal?

1.如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了。

  1. replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了,业务类型主要是读������,��Ӱ��请求比较大,但是写请求比较少。

  2. redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,或者读写请求都较大,那么建议就用redis cluster。
    此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net