redis高可用之集群

本文详细介绍了Redis集群的高可用性,包括节点、分片、复制和故障转移等关键概念。节点间通过握手连接形成集群,数据通过分片进行分布式存储。在故障发生时,复制和故障转移机制确保服务的连续性,主节点选举流程保证了集群的稳定性。
摘要由CSDN通过智能技术生成

redis高可用之集群

​ redis集群是redis提供的分布式数据库解决方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。

1、节点

​ 一个redis集群通常由多个节点组成,刚开始,每个节点都是相互独立的,他们处于一个只包含自己的集群当中,要组建一个真正可用的集群,我们必须将各个独立的节点连接起来。

​ redis集群的数据结构主要有三种,clusterNode、clusterLink、clusterState。

  • clusterNode

    struct clusterNode {
    	mstime_t ctime;
        char name[REDIS_CLUSTER_NAMELEN];
        int flags;
        uint64_t configEpoch;
        char ip[REDIS_IP_STR_LEN];
        int port;
        clusterLink *link;
        clusterState *state;
        unsigned char slots[16384/8];
        int numslots;
        clusterNode *slaveof;
        list *fail_reports;
    }
    

    ctime是节点创建时间;name是节点名称,由40个字符组成;flags是节点标识,使用不同的标识记录节点的角色(主节点或从节点)、节点目前所处的状态(在线或下线);configEpoch是节点当前的配置纪元,用于故障转移;ip是节点的ip;port是节点的端口号;link指针保存了节点的连接信息;state指针保存了在当前节点的视角下,集群目前所处的状态;slots记录了该节点处理哪些槽;numslots记录了该节点处理的槽的数量;slaveof是指向主节点的指针;fail_reports是一个保存了集群中的其他节点对该节点的下线报告。

  • clusterLink

    struct clusterLink {
    	mstine_t ctime;
        int fd;
        sds sndbuf;
        sds rcvbuf;
        clusterNode *node;
    }
    

    ctime是连接建立时间;fd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值