美文网首页
redis cluster多master架构

redis cluster多master架构

作者: sknfie | 来源:发表于2020-08-06 09:44 被阅读0次

    redis cluster概述

    • redis cluster提供了多个master节点,数据可以存储在多个master节点上;
    • 每个master都有一个slave,配置成读写分离
    • 如果一个master发生故障,就会自动将其slave切换成master

    redis cluster的基本功能简介

    1、多master写入实现海量数据的分布式存储

    • 在redis cluster写入数据的时候,其实是将请求发送到任意一个master上去执行。
    • 每个master都需要计算这个key对应的CRC16值,然后对16384个hashslot取模,从而找到该key对应的hashslot,以及hashslot对应的master。
    • 如果对应的master就在本服务器master上,执行命令set mykey1 v1后,mykey1这个key对应的hashslot就在本服务器master上自己处理了。
    • 如果计算出来的hashslot在其他master上,那么就会给客户端返回一个moved error,让客户端去其他master上去执行这条命令。

    多master写入

    多master写入涉及分布式的数据存储,每条数据只能存在于一个master上,不同的master负责存储不同的数据。
    如果100w条数据写入到5个master,那么每个master就只需负责存储20w条数据。
    redis cluster可以写到任意master,任意master计算key的hashslot以后,通知client重定向路由到其他mater去执行,这就是分布式存储的一个经典的做法。

    多master读写分离

    在redis cluster多master读写分离架构中,如果要在slave中 读取数据,那么需要readonly指令。

    redis-cli -h 192.168.201.34 -p 7004
    get mykey1
    (error) MOVED 1860 192.168.201.33:7001
    192.168.201.34:7004> readonly
    OK
    192.168.201.34:7004> get mykey1
    "111"
    

    redis-cli -c启动,就会自动进行各种底层的重定向的操作

    redis-cli -h 192.168.201.33 -p 7001 -c
    192.168.201.33:7001> set mykey6 666
    -> Redirected to slot [14243] located at 192.168.201.35:7005
    OK
    192.168.201.35:7005> get mykey6
    "666"
    

    redis cluster读写分离架构的限制性:

    • 默认情况下,redis cluster核心理念就是用slave做高可用,每个master挂一两个slave,主要负责数据的热备,以及master故障时的主备切换;
    • redis cluster默认不支持slave节点读和写的,这跟基于replication搭建的主从架构不一样:
      因此,在slave节点上设置readonly指令,才能执行get命令在slave node进行读取;
    • redis cluster支持主从架构,也可以做读写分离但是比较复杂。jedis客户端对redis cluster的读写分离支持不是太好;
    • 默认的话就是读和写都到master上去执行;
    • 如果jedis做redis cluster读写分离的处理,需要修改一下jedis的源码:做一个redis cluster的读写分离的访问api。

    总结

    综上所述,redis cluster已经没有读写分离的概念:

    • 首先,读写分离通过建立一主多从的架构,横向任意扩展slave节点去支撑高并发的读吞吐量;
    • 但是在redis cluster的架构下,master节点是可以任意扩展的,如果要支撑更大的读写吞吐量,只需要对master节点进行横向扩展。

    相关文章

      网友评论

          本文标题:redis cluster多master架构

          本文链接:https://www.haomeiwen.com/subject/zyebrktx.html