美文网首页
Redis Redis-Cluster集群配置

Redis Redis-Cluster集群配置

作者: 小P聊技术 | 来源:发表于2021-02-21 08:25 被阅读0次

    1 介绍

    redis的主从复制以及哨兵模式,他们可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master集群。
    redis-cluster是常用的redis集群搭建方式之一,他可以支撑多个master-slave,支持海量数据,实现高可用与高并发。
    哨兵模式其实也是一种集群,他能够提高读请求的并发,但是容错方面可能会有一些问题,比如master同步数据给slave的时候,这其实是异步复制,这个时候如果master宕机了,那么slave上的数据就没有master新,数据同步需要时间的,1-2秒的数据会丢失。master恢复并转换成slave后,新数据则丢失。

    2 特点

    1 每个节点知道彼此之间的关系,也会知道自己的角色,当然他们也会知道自己存在与一个集群环境中,他们彼此之间可以交互和通信,比如 ping pong。那么这些关系都会保存到某个配置文件中,每个节点都有,这个我们在搭建的时候会做配置的。
    2 客户端要和集群建立连接的话,只需要和其中一个建立关系就行。
    3 某个节点挂了,也是通过超过半数的节点来进行的检测,客观下线后主从切换,和我们之前在哨兵模式中提到的是一个道理。
    4 Redis中存在很多的插槽,又可以称之为槽节点,用于存储数据。

    哨兵模式其实也是一种集群,他能够提高读请求的并发,但是容错方面可能会有一些问题,比如master同步数据给slave的时候,这其实是异步复制,这个时候如果master宕机了,那么slave上的数据就没有master新,数据同步需要时间的,1-2秒的数据会丢失。master恢复并转换成slave后,新数据则丢失。

    redis cluster有固定的16384个hash slot,对每个key计算CRC16值,然后对16384取模,可以获取key对应的hash slot。redis cluster中每个master都会持有部分slot,比如有3个master,那么可能每个master持有5000多个hash slot。

    hash slot让node的增加和移除很简单,增加一个master,就将其他master的hash slot移动部分过去,减少一个master,就将它的hash slot移动到其他master上去。

    移动hash slot的成本是非常低的。

    客户端的api,可以对指定的数据,让他们走同一个hash slot,通过hash tag来实现。

    3 集群容错

    构建Redis集群,需要至少3个节点作为master,以此组成一个高可用的集群,此外每个master都需要配备一个slave,所以整个集群需要6个节点,这也是最经典的Redis集群,也可以称之为三主三从,容错性更佳。所以在搭建的时候需要有6台虚拟机。虚拟的话,可以先配置一台单机版的Redis,再进行虚拟机的克隆。

    • 集群也可以在单服务器构建,称之为伪集群,但是生产环境肯定是真的,所以建议用6台。
    • 克隆后务必关闭Redis。

    4 构建redis集群

    4.1 环境信息

    虚拟机 IP
    M1 192.168.51.101
    M2 192.168.51.102
    M3 192.168.51.103
    S1 192.168.51.104
    S2 192.168.51.105
    S3 192.168.51.106

    4.2 修改配置文件

    修改redis.conf文件

    # 开启集群模式
    cluster-enabled yes
    # 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集
    cluster-config-file nodes-6379.conf 
    # 超时时间,超时则认为master宕机,随后主备切换
    cluster-node-timeout 5000
    # 开启AOF
    appendonly yes
    

    4.3 启动redis

    启动所有虚拟机的redis,,如果启动报错,清除所有RDB文件

    [root@localhost redis]# /etc/init.d/redis_init_script start
    

    4.4 创建集群

    #####
    # 注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb来构建集群,最新版使用C语言来构建了,这个要注意
    # 注意2:以下为新版的redis构建方式
    #####
    # 创建集群,主节点和从节点比例为1,1-3为主,4-6为从,1和4,2和5,3和6分别对应为主从关系,这也是最经典用的最多的集
    redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1
    

    4.5 检查集群信息

    [root@localhost redis]# redis-cli -a auskat --cluster check 192.168.51.101:6379
    

    5 相关信息

    • 博文不易,辛苦各位猿友点个关注和赞,感谢

    相关文章

      网友评论

          本文标题:Redis Redis-Cluster集群配置

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