当前位置:网站首页 > Haskell函数式编程 > 正文

redis哨兵连接数设置(redis 哨兵模式搭建)



Redis哨兵模式是一种用于在Redis主从复制环境中进行高可用性监控和故障恢复的机制。该模式引入了一个或多个哨兵节点,这些节点负责监控Redis服务器的状态,并在主节点发生故障时切换为新的主节点。

哨兵节点的工作原理如下:
1、哨兵节点通过发送命令来监控Redis服务器的状态。它会定期向主节点和从节点发送PING命令,检查节点是否存活。
2、当主节点发生故障或不可用时,哨兵节点会进行故障检测。它会询问其他哨兵节点是否已经发现了主节点的故障,并尝试达成共识。
3、如果多数哨兵节点都认为主节点故障,那么它们会选举新的主节点。选举的原则是选择一个具有最高优先级的从节点,如果没有从节点则选择一个具有最高优先级的哨兵节点。
4、一旦新的主节点被选出,哨兵节点会更新所有其他从节点的配置信息,使它们成为新主节点的从节点。
5、当故障的主节点恢复时,哨兵节点会将其重新加入到主从复制环境中,并将其设置为新主节点的从节点。
6、通过哨兵模式,Redis可以实现高可用性和故障恢复。当主节点发生故障时,哨兵节点可以自动切换为新的主节点,使系统可以在故障期间继续提供服务。同时,哨兵节点可以监控并修复其他节点的故障,确保整个Redis集群处于可用状态。
在这里插入图片描述






服务器准备
在这里插入图片描述
关闭所有服务器防火墙

 
  

修改所有服务器的hosts

 
  

资源准备
redis 下载地址:
http://download.redis.io/releases/

1、在所有服务器执行
注意: 新版本redis自带哨兵,不需要单独安装

 
  

2、配置redis.conf

 
  

主配置

 
  

从配置
1、masterauth: 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。“requirepass”配置项指定了当前server的密码。此配置项中值需要和master机器的“requirepass”保持一致。
2、slaveof : 将当前服务器转变为指定服务器的从属服务器(slave server)。

 
  

3、启动
依次启动所有服务器上的redis 服务

 
  

4、查看状态
启动所有服务器后,查看所有redis 节点状态

master节点信息

 
  

slave节点信息

 
  

在redis的安装目录下有个文件sentinel.conf,这就是哨兵的配置文件。它和redis.conf文件在同级目录。

1、sentinel.conf配置

 
  

2、reconfig.sh 节点切换企业微信发送脚本

 
  

3、哨兵启动

 
  

4、查看启动状态

 
  

5、注意
redis 哨兵模式启动成功后,会自动在sentinel .conf 最下方生成以下配置

 
  

Redis的配置文件redis.conf包含了多个参数,这些参数用于定义Redis服务器的行为、性能和安全设置。以下是一些常见参数的详细说明:

基本设置

  • daemonize:是否以后台进程运行。默认为no,如果设置为yes,则Redis将以守护进程的方式在后台运行。
  • pidfile:当Redis以后台进程运行时,需要指定一个PID文件以存储进程ID。默认为/var/run/redis.pid,但可以通过此参数进行修改。
  • bind:绑定主机IP地址。默认值为127.0.0.1,即只接受来自本地主机的连接。如果设置为0.0.0.0,则接受来自所有IP地址的连接。
  • port:监听端口号。默认为6379,但可以根据需要进行修改。
  • timeout:客户端连接超时时间(秒)。默认为300秒,即如果客户端在指定时间内没有发送任何请求,则服务器将关闭该连接。如果设置为0,则表示禁用此功能。

日志设置

  • loglevel:日志记录等级。有4个可选值:debug、verbose(默认值)、notice、warning。这些等级决定了日志信息的详细程度。
  • logfile:日志记录方式及路径。默认为stdout,即将日志输出到标准输出。如果设置为文件路径,则日志将被写入该文件。

数据库设置

  • databases:可用数据库的数量。默认值为16,但可以根据需要进行修改。数据库编号从0开始,可以使用SELECT命令来选择要使用的数据库。
  • dbfilename:本地数据库文件名。默认为dump.rdb,这是Redis用于存储数据的文件名。
  • dir:本地数据库存放路径。默认为当前目录(即redis.conf所在的目录),但可以通过此参数进行修改。

数据持久化

  • save:指定在多长时间内有多少次更新操作就将数据同步到数据文件。可以配置多个条件,如“save 900 1”表示在900秒内有1次更改时触发数据持久化。
  • rdbcompression:在存储至本地数据库时是否压缩数据。默认为yes,使用LZF压缩算法。如果为了节省CPU时间,可以设置为no,但会导致数据库文件变大。
  • appendonly:是否在每次更新操作后进行日志记录(AOF持久化)。默认为no。如果开启此功能,Redis将在每次写操作时追加日志到指定的文件中,以确保数据的持久性。但需要注意的是,这可能会影响性能。
  • appendfilename:更新日志文件名。默认为appendonly.aof。
  • appendfsync:更新日志条件。有3个可选值:no(等待操作系统进行数据缓存同步到磁盘)、always(每次更新操作后手动调用fsync()将数据写到磁盘)、everysec(每秒同步一次,默认值)。

主从复制

  • slaveof:设置从服务器的主服务器IP地址和端口号。当本机为从服务时,需要指定主服务的IP及端口。
  • masterauth:当本机为从服务时,设置主服务的连接密码。如果主服务器设置了密码保护,则从服务器在连接主服务器时需要进行身份验证。
  • slave-serve-stale-data:当从服务器与主服务器失去联系或复制正在进行时,从服务器的行为设置。如果设置为yes(默认值),从服务器将继续响应客户端请求,但返回的数据可能是过时的。如果设置为no,则除了INFO和SLAVEOF命令之外的任何请求都会返回一个错误信息“SYNC with master in progress”。

安全设置

  • requirepass:设置连接密码。如果配置了连接密码,客户端在连接Redis时需要通过AUTH命令提供密码。

其他设置

  • maxclients:最大客户端连接数。默认不限制,但可以根据服务器的性能和网络环境进行设置。如果达到最大连接数,Redis将关闭新的连接并向客户端返回错误信息。
  • maxmemory:设置Redis使用的最大内存量。当达到最大内存限制时,Redis会尝试清除已到期或即将到期的Key。如果仍然无法释放足够的内存,Redis将无法进行写入操作。
  • tcp-backlog:TCP监听的最大容纳数量。在高并发的环境下,需要把这个值调高以避免客户端连接缓慢的问题。
  • tcp-keepalive:指定ACKs的时间周期(秒)。如果设置为非0值,则表示将周期性地检测客户端是否可用。默认值为0,表示不进行检测。
  • protected-mode:Redis 3.2版本后新增的配置项。默认为yes,即开启保护模式。在保护模式下,如果Redis没有配置密码或绑定IP地址,它将只允许来自本地主机的连接。为了允许外部连接,可以关闭保护模式或配置密码和绑定IP地址。

sentinel.conf 是 Redis Sentinel 的配置文件,用于定义 Sentinel 的行为、监控的主节点信息、故障转移策略等。以下是对 sentinel.conf 中一些关键参数的详细解释:

基本设置

  • port:Sentinel 实例运行的端口号。每个 Sentinel 实例都需要一个独立的端口号。例如:port 26379。
  • daemonize:是否以守护进程方式运行 Sentinel。默认为 no,如果设置为 yes,则 Sentinel 将在后台运行。
  • logfile:指定 Sentinel 的日志文件路径。如果为空,则日志将输出到标准输出。
  • dir:指定 Sentinel 的工作目录。用于存放 Sentinel 的配置文件、日志文件等。

监控设置

  • sentinel monitor:定义要监控的主节点信息。格式为 sentinel monitor 。其中, 是主节点的名称, 是主节点的 IP 地址, 是主节点的端口号, 是判定主节点最终不可达所需要的票数(即多少个 2、Sentinel 实例认为主节点不可达时,才认为主节点真正不可达)。例如:sentinel monitor mymaster 127.0.0.1 6379 2。
  • sentinel auth-pass:设置连接主节点和从节点的密码。如果主节点和从节点设置了密码保护,则需要通过此参数进行身份验证。格式为 sentinel auth-pass 。

故障转移设置

  • sentinel down-after-milliseconds:定义 Sentinel 认为主节点或从节点不可达的时间阈值(毫秒)。如果在这个时间内没有收到主节点或从节点的响应,则认为该节点不可达。格式为 sentinel down-after-milliseconds 。例如:sentinel down-after-milliseconds mymaster 30000。
  • sentinel parallel-syncs:定义在故障转移期间,可以同时向新主节点发起复制操作的从节点个数。这个值越大,意味着故障转移期间从节点同步新主节点数据的时间总和越长;这个值越小,则意味着在故障转移期间,多个从节点向客户端提供服务时可能仍然使用旧数据。格式为 sentinel parallel-syncs 。例如:sentinel parallel-syncs mymaster 1。
  • sentinel failover-timeout:定义故障转移的超时时间(毫秒)。如果在这个时间内故障转移没有完成,则认为此次故障转移失败。下次对该主节点进行故障转移的时间将是该设置的2倍。格式为 sentinel failover-timeout 。例如:sentinel failover-timeout mymaster 。

通知脚本设置

  • sentinel notification-script:定义在故障转移发生时执行的通知脚本。这个脚本可以用来告知系统管理员当前集群的情况。脚本被允许执行的最大时间为60秒,如果超时,脚本将会被终止。脚本执行的结果可以是1(稍后重试,最大重试次数为10)或2(执行结束,无需重试)。格式为 sentinel notification-script 。例如:sentinel notification-script mymaster /var/redis/notify.sh。

其他设置

  • protected-mode:保护模式设置。如果设置为 yes,则 Sentinel 只允许来自本地主机的连接(除非绑定了其他 IP 地址或关闭了保护模式)。默认为 yes。
  • bind:绑定 IP 地址。如果设置了此参数,则 Sentinel 只接受来自这些 IP 地址的连接。
到此这篇redis哨兵连接数设置(redis 哨兵模式搭建)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 支付方式怎么更换微信(怎样更换支付方式)2025-07-17 20:45:09
  • udp报文格式(UDP报文格式详解)2025-07-17 20:45:09
  • 简单好玩的编程代码简单(简单编程代码入门大全)2025-07-17 20:45:09
  • pivot函数表格用法(excel pivot 用法)2025-07-17 20:45:09
  • a标签新打开窗口(a标签如何设定页面打开方式)2025-07-17 20:45:09
  • 开题报告一级毕业论文开题报告写作全指南!二级毕业论文开题报告写作全指南!三级毕业论文开题报告写作全指南!格式(开题报告一级毕业论文开题报告写作全指南!二级毕业论文开题报告写作全指南!三级毕业论文开题报告写作全指南!格式怎么写)2025-07-17 20:45:09
  • 指数与对数函数的关系(指数与对数函数的关系集体备课过程)2025-07-17 20:45:09
  • 字符串转编码格式(字符串转换编码)2025-07-17 20:45:09
  • 淘宝优先支付方式怎么设置(淘宝优先支付方式怎么设置不了)2025-07-17 20:45:09
  • 文件打开目录(打开目录文件的函数)2025-07-17 20:45:09
  • 全屏图片