iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis Cluster原理及配置详解
  • 925
分享到

Redis Cluster原理及配置详解

2024-04-02 19:04:59 925人浏览 薄情痞子
摘要

目录Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵cluster-enabledcluster-config-filecluster-node-timeoutcluster-portcluster

Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵

Redis Cluster 集群相关配置,使用集群方式的你必须重视和知晓。别嘴上原理说的头头是道,而集群有哪些配置?如何配置让集群快到飞起,实现真正的高可用却一头雾水,通过下面这些配置详解也让你对集群原理更加深刻。

cluster-enabled

普通的 Redis 实例是不能成为集群的一员,想要将该节点加入 Redis Cluster,需要设置 cluster-enabled yes

cluster-config-file

cluster-config-file nodes-6379.conf 指定集群中的每个节点文件。

集群中的每个节点都有一个配置文件,这个文件并不是让程序员编辑的,是我自己创建和更新的,每个节点都要使用不同的配置文件,一定要确保同一个集群中的不同节点使用的是不同的文件。

cluster-node-timeout

设置集群节点不可用的最大超时时间,节点失效检测。集群中当一个节点向另一个节点发送PING命令,但是目标节点未在给定的时限内返回PING命令的回复时,那么发送命令的节点会将目标节点标记为PFAIL(possible failuer,可能已失效);

如果master 节点超过这个时间还是无响应,则用它的从节点将启动故障迁移,升级成主节点。

注意,任何一个节点在这个时间之内如果还是没有连上大部分的主节点,则此节点将停止接收任何请求。

默认配置是 cluster-node-timeout 15000,单位是毫秒数。

cluster-port

该端口是集群总线监听 tcp 连接的端口,默认配置为 cluster-port 0,我就会把端口绑定为客户端命令端口 + 10000(客户端端口默认 6379,所以绑定为 16379 作为集群总线端口)。每个 Redis Cluster 节点都需要开放两个端口:

  • 一个用于服务于客户端的 TCP 端口,比如 6379.
  • 另一个称为集群总线端口,节点使用集群总线进行故障监测、配置更新、故障转移等。客户端不要与集群总线端口通信,另外请确保在防火墙打开这两个端口,否则 Redis 集群接地那将无法通信。

cluster-replica-validity-factor

该配置用于决定当 Redis Cluster 集群中,一个 master 宕机后,如何选择一个 slave 节点完成故障转移自动恢复(failover)。如果设置为 0 ,则不管 slave 与 master 之间断开多久,都认为自己有资格成为 master。

下面提供了两种方式来评估 slave 的数据是否太旧。

  • 如果有多个 slave 可以 failover,他们之间会通过交换信息选出拥有拥有最大复制 offset 的 slave 节点。
  • 每个 slave 节点计算上次与 master 节点交互的时间,这个交互包含最后一次 ping 操作、master 节点传输过来的写指令、上次可 master 断开的时间等。如果上次交互的时间过去很久,那么这个节点就不会发起 failover。

针对第二点,交互时间可以通过配置定义,如果 slave 与 master 上次交互的时间大于 (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period,该 slave 就不会发生 failover。

例如,`node-timeout = 30 秒,cluster-replica-validity-factor=10repl-ping-slave-period=10秒, 表示slave节点与master节点上次交互时间已经过去了310秒,那么slave节点就不会做failover。

调大 cluster-replica-validity-factor 则允许存储过旧数据的 slave 节点提升为 master,调小的话可能会导致没有 slave 节点可以升为 master 节点。

考虑高可用,建议大家设置为 cluster-replica-validity-factor 0

cluster-migration-barrier

没有 slave 节点的 master 节点称为孤儿 master节点,这个配置就是用于防止出现裸奔的 master。

当某个 master 的 slave 节点宕机后,集群会从其他 master 中选出一个富余的 slave 节点迁移过来,确保每个 master 节点至少有一个 slave 节点,防止当孤立 master 节点宕机时,没有slave节点可以升为 master 导致集群不可用。

默认配置为 cluster-migration-barrier 1,是一个迁移临界值。

含义是:迁移后 master 节点至少还有 1 个 slave 节点才能做迁移操作。比如 master A 节点有2个以上 slave 节点 ,当集群出现孤儿 master B 节点时,A 节点富余的 slave 节点可以迁移到 master B 节点上。

生产环境建议维持默认值,最大可能保证高可用,设置为非常大的值或者配置 cluster-allow-replica-migration no 禁用自动迁移功能。

cluster-allow-replica-migration 默认配置为 yes,表示允许自动迁移。

cluster-require-full-coverage

默认配置是 yes,表示为当 redis cluster 发现至少还有一个 哈希槽没有被分配时禁止查询操作。

这就会导致集群部分宕机,整个集群就不可用了,当所有哈希槽都有分配,集群会自动变为可用状态。

如果你希望 cluster 的子集依然可用,配置成 cluster-require-full-coverage yes

cluster-replica-no-failover

默认配置为 no,当配置成 yes,在master 宕机时,slave 不会做故障转移升为 master。

这个配置在多数据中心的情况下会很有用,你可能希望某个数据中心永远不要升级为 master 节点,否则 master 节点就漂移到其他数据中心了。

cluster-allow-reads-when-down

默认是 no,表示当集群因主节点数量达不到最小值或者哈希槽没有完全分配而被标记为失效时,节点将停止所有客户端请求。

设置成 yes,则允许集群失效的情况下依然可从节点中读取数据,保证了高可用。

cluster-allow-pubsubshard-when-down

配置成 yes,表示当集群因主节点数量达不到最小值或者哈希槽没有完全分配而被标记为失效时,pub/sub 依然可以正常运行。

cluster-link-sendbuf-limit

设置每个集群总线连接的发送字节缓冲区的内存使用限制,超过限制缓冲区将被清空(主要为了防止发送缓冲区发送给慢速连接时无限延长时间的问题)。

默认禁用,建议最小设置1gb,这样默认情况下集群连接缓冲区可以容纳至少一pubsub消息(client-query-buffer-limit 默认是1gb);

以上就是Redis Cluster原理及配置详解的详细内容,更多关于Redis Cluster原理配置的资料请关注我们其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Redis Cluster原理及配置详解

本文链接: https://www.lsjlt.com/news/145480.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis Cluster原理及配置详解
    目录Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵cluster-enabledcluster-config-filecluster-node-timeoutcluster-portcluster...
    99+
    2024-04-02
  • 解析Redis Cluster原理
    目录一、前言二、为什么需要RedisCluster三、RedisCluster是什么四、节点负载均衡五、什么是一致性哈希六、虚拟节点机制七、RedisCluster采用的什么算法八、...
    99+
    2024-04-02
  • RedisCluster原理及配置详解
    目录Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵cluster-enabledcluster-config-filecluster-node-timeout...
    99+
    2022-11-16
    Redis Cluster原理配置 Redis Cluster
  • redis cluster (3) 配置
    一、redis 持久化说明1) 手工持久化   SAVE(同步回写)和 BGSAVE(异步回写) 两个命令都会调用 rdbSave 函数,它们都实现RDB持久化,但它们调用的方式各有不同:  SAVE 直接调用 rdbSave ,阻塞 R...
    99+
    2023-01-31
    redis cluster
  • Redis replication主从复制原理及配置
    本文主要介绍Redis replication 主从复制原理和配置及基本操作 等 主要参考官方文档: https://redis.io/topics/replication ...
    99+
    2024-04-02
  • Redis cluster集群模式的原理解析
    redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放...
    99+
    2024-04-02
  • Redis Sentinel哨兵模式的原理及配置
    这篇文章主要介绍“Redis Sentinel哨兵模式的原理及配置”,在日常操作中,相信很多人在Redis Sentinel哨兵模式的原理及配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • Redis高可用集群redis-cluster详解
    哨兵模式主要解决了手动切换主从节点的问题 1 , 哨兵模式的缺陷 .主从节点切换的时候存在访问瞬断,等待时间较长, .只有一个master节点提供写,slave节点提供读,尽管写的效...
    99+
    2024-04-02
  • SpringBoot server.port配置原理详解
    目录SpringBoot server.port配置原理1. autoConfigure2. embed tomcat如何使用小结一下server.port不起作用SpringBoo...
    99+
    2024-04-02
  • Redis Cluster 字段模糊匹配及删除
    Questions 在数据库内我们可以通过like关键字、%、*或者REGEX关键字进行模糊匹配。而在Redis内我们如何进行模糊匹配呢?集群情况Redis Cluster的情况是...
    99+
    2024-04-02
  • SpringBoot自动配置原理详解
    目录阅读收获一、SpringBoot是什么二、SpringBoot的特点三、启动类3.1 @SpringBootApplication四、@EnableAutoConfigurati...
    99+
    2024-04-02
  • H3C IRF原理及 配置
    H3C IRF原理及 配置                http://keep11.blog.51cto.com/1443840/17276641、概述IRF(Intelligent Resilient Framework,智能弹性架构...
    99+
    2023-01-31
    原理 H3C IRF
  • 详解Redis复制原理
    目录前言一.配置与实践配置实践只读二.工作原理三.数据同步全量复制部分复制前言 本文主要介绍Redis复制机制 一.配置与实践 配置 Redis实例分为主节点(master)和从节...
    99+
    2024-04-02
  • Quartz集群原理以及配置应用的方法详解
    Quartz是一个开源的任务调度框架,用于在Java应用程序中实现定时任务的调度和执行。Quartz集群是指多个Quartz实例组成...
    99+
    2023-08-15
    Quartz
  • HP cluster的硬件配置及使用
    双机备份原理:在2个主机节点上分别安装集群软件(如:HP ServiceGuard),对客户端配置一个浮动IP,浮动意思是该IP地址适时绑定在2个节点中的某一个上,但该IP对客户端是固定的。每个节点配置3块网卡,分别是数据网卡,心跳信号网卡...
    99+
    2023-06-06
  • springboot自动配置原理以及spring.factories文件的作用详解
    目录一、springboot 自动配置原理二、spring.factories文件的作用spring.factories 的妙用什么是 SPI 机制?Spring Boot 中的 S...
    99+
    2024-04-02
  • redis配置文件中常用配置详解
    此次安装的版本为: 5.0.3 [root@localhost local]# redis-server --version Redis server v=5.0.3 sha=0...
    99+
    2024-04-02
  • SpringBoot 自动配置原理及源码解析
    初始化一个Springboot项目,在主启动类会有这么一个注解:@SpringBootApplication,自动装配的秘密全在主启动类这个注解里面了 点进去一层会发现有三个子注解组...
    99+
    2024-04-02
  • Tomcat安装配置及Eclipse配置详解
    整个安装过程我们先学习安装JDK和配置然后是安装Tomcat和配置,最后我们学习安装Eclipse和配置以及Web程序的使用和发布举例1. 安装JDK和配置JDK的安装参照:JDK的下载、安装与部署图文教程(1)下载JDK安装包:https...
    99+
    2023-05-30
    tomcat 安装 eclipse
  • SpringBoot异步使用@Async的原理以及线程池配置详解
    目录前言 使用步骤 配置线程池类参数配置 自定义线程任务 总结 原理刨析 文章参考 前言 在实际项目开发中很多业务场景需要使用异步去完成,比如消息通知,日志记录,等非常常用的都可以...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作