• Redis集群高可用配置


    Redis Cluster 集群的高可用配置在工程应用中必须重视起来,下面浅浅的聊聊。
    Redis 集群相关概念:

    • cluster-enabled:普通的 Redis 实例是不能成为集群的一员,想要将该节点加入 Redis Cluster,需要设置 cluster-enabled yes;
    • cluster-config-file:cluster-config-file nodes-6379.conf 指定集群中的每个节点文件;
    • cluster-node-timeout:设置集群节点不可用的最大超时时间,节点失效检测;默认配置是 cluster-node-timeout 15000,单位是毫秒数;
      集群中当一个节点向另一个节点发送PING命令,但是目标节点未在给定的时限内返回PING命令的回复时,那么发送命令的节点会将目标节点标记为PFAIL;如果master 节点超过这个时间还是无响应,则用它的从节点将启动故障迁移,升级成主节点。
    • cluster-port:该端口是集群总线监听 TCP 连接的端口,默认配置为 cluster-port 0;
    • cluster-replica-validity-factor:该配置用于决定当 Redis Cluster 集群中,一个 master 宕机后,如何选择一个 slave 节点完成故障转移自动恢复(failover)。如果设置为 0 ,则不管 slave 与 master 之间断开多久,都认为自己有资格成为 master;
    • cluster-replica-no-failover:默认配置为 no,当配置成 yes,在master 宕机时,slave 不会做故障转移升为 master;

    Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。
    Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。
    Redis 集群搭建实例
    6个节点,如192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4、192.168.1.5、192.168.1.6
    删除6个节点中的aof、rdb文件,如rm -rf *.rdb *.aof
    1、修改6个节点中的redis.conf
    修改内容如下

    ...
    #打开集群模式
    cluster-enabled yes
    ...
    #设定节点配置文件名
    cluster-config-file nodes-6379.conf
    ...
    #设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换
    cluster-node-timeout 15000
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、启动6个节点的redis
    启动成功后会生成nodes-6379.conf文件,通过ps -ef | grep redis查看redis是否启动成功。

    3、创建集群
    用redis-cli 创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)。

    redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 192.168.1.4:6379 192.168.1.5:6379 192.168.1.6:6379 --cluster-replicas 1
    
    • 1

    其中,cluster-replicas 表示复制因子 1表示 一主一从。

    4、测试集群
    连接任意一个客户端即可,如redis-cli -c -h 192.168.1.1 -p 6379
    登录进入之后,可以通过cluster info查看集群信息,通过cluster nodes查看节点列表。

    后续若有修改或补充会进行更新。

  • 相关阅读:
    【IO多路转接】poll&epoll
    Maven依赖解析之倍增提速,eBay Velocity实践的开源新算法
    深入理解ThreadLocal
    关于自定义程序打包成jar包,并读取配置
    ACE综述
    C#/.NET/.NET Core优秀项目框架推荐
    移动应用测试快速指南
    k8s客户端配置
    实习经历复盘
    Git/TortoiseGit ssh client 配置
  • 原文地址:https://blog.csdn.net/leijie0322/article/details/127692570