redis 哨兵主从切换

Redis哨兵模式是一种高可用性解决方案,它通过自动监控和故障转移来实现主从故障互切换,在Redis哨兵模式下,有一个主节点和多个从节点,以及一个或多个哨兵节点,当主节点出现故障时,哨兵节点会自动选举出一个新的主节点,并将客户端的请求重定向到新的主节点上,本文将详细介绍Redis哨兵模式的实现原理和配置方法。

Redis哨兵模式的原理

1、主从复制

redis 哨兵主从切换

在Redis中,主节点负责处理写操作,从节点负责处理读操作,主从复制是Redis实现高可用性的基础,它可以将主节点的数据同步到从节点上,从而实现数据的冗余备份,当主节点出现故障时,客户端可以继续访问从节点上的数据,保证服务的可用性。

2、哨兵模式

哨兵模式是一种特殊的主从复制模式,它在主从复制的基础上增加了哨兵节点,哨兵节点的主要职责是监控主节点的状态,并在主节点出现故障时自动进行故障转移,具体来说,哨兵模式包括以下几个步骤:

(1)哨兵节点定期向主节点和从节点发送心跳检测命令,检查它们是否正常运行。

redis 哨兵主从切换

(2)当某个哨兵节点发现主节点不可用时,它会与其他哨兵节点进行协商,选举出一个新的主节点。

(3)当选举出新的主节点后,哨兵节点会将客户端的请求重定向到新的主节点上,并更新从节点的复制目标为新的主节点。

Redis哨兵模式的配置方法

1、配置主节点和从节点

我们需要在Redis配置文件中设置主节点和从节点的相关参数。

redis 哨兵主从切换

主节点配置
bind 127.0.0.1
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
dir /var/lib/redis/6379
dbfilename dump.rdb
appendonly yes
slave-serve-stale-data yes
slave-read-only yes
repl-backlog-size 1mb
repl-backlog-ttl 3600
repl-disable-tcp-nodelay no
slave-priority 100
masterauth mypassword
requirepass mypassword
maxclients 10000
timeout 300
tcp-keepalive 300
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/6379
slaveof 127.0.0.1 6380 6381
从节点配置
bind 127.0.0.1
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
dir /var/lib/redis/6380
dbfilename dump.rdb
appendonly yes
slave-serve-stale-data yes
slave-read-only yes
repl-backlog-size 1mb
repl-backlog-ttl 3600
repl-disable-tcp-nodelay no
slave-priority 100
masterauth mypassword
requirepass mypassword
maxclients 10000
timeout 300
tcp-keepalive 300
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/6380
slaveof 127.0.0.1 6379  指向主节点的IP和端口号

2、配置哨兵节点

接下来,我们需要在每个哨兵节点的配置文件中设置相关参数。

哨兵节点配置1(假设IP为127.0.0.2)
bind 127.0.0.2
port 26379  哨兵节点监听的端口号,需要与主从节点保持一致,以便进行通信和监控。
daemonize yes
pidfile /var/run/redis_26379.pid
dir /var/lib/redis/26379  哨兵日志文件存储目录,需要与主从节点保持一致,logfile "/var/log/redis_sentinel_26379.log"  哨兵日志文件路径,需要与主从节点保持一致,sentinel monitor mymaster 127.0.0.1 6379 2  "mymaster"是自定义的主节点名称,后面的IP和端口号是主节点的实际地址和端口号,最后的2表示至少需要两个哨兵节点同意才能进行故障转移,sentinel down-after-milliseconds mymaster 5000  如果主节点在指定时间内没有响应哨兵的PING命令,则认为主节点不可用,down-after-milliseconds后面的数字表示超时时间,单位为毫秒,sentinel parallel-syncs mymaster 1  如果设置了该参数,那么在进行故障转移时,最多只能同时从一个从节点上同步数据,parallel-syncs后面的数字表示最大同步数,sentinel failover-timeout mymaster 180000  如果设置了该参数,那么在进行故障转移时,如果在指定时间内无法完成故障转移,则认为故障转移失败,failover-timeout后面的数字表示超时时间,单位为毫秒,sentinel client-reconfig-script mymaster /var/redis/notify.sh  如果设置了该参数,那么在进行故障转移时,会执行指定的脚本来通知客户端重新连接新的主节点,client-reconfig-script后面的路径是脚本文件的路径,```

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/182039.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2023-12-30 12:21
Next 2023-12-30 12:23

相关推荐

  • 华为云服务器怎么打开端口权限设置

    华为云服务器怎么打开端口权限设置在云计算时代,越来越多的企业和个人开始使用云服务器来部署和运行应用程序,由于安全原因,许多云服务器默认情况下并不开放所有端口,这就需要我们手动设置端口权限,本文将介绍如何在华为云服务器上打开端口权限设置。一、登录华为云服务器我们需要登录到我们的华为云服务器,可以通过SSH客户端(如PuTTY)或者华为云……

    2023-11-27
    0227
  • redis加锁的实现方法是什么

    Redis加锁的实现方法包括setnx、set命令和Lua脚本等,通过设置特定的键值对来保证并发访问的安全性。

    2024-05-17
    0127
  • 使用云服务器地址的步骤及注意事项 (怎么使用云服务器地址)

    云服务器是一种基于互联网的计算方式,它通过将计算资源、存储资源和网络资源进行虚拟化,为用户提供了一种按需使用、按量付费的服务模式,云服务器可以帮助用户快速构建和部署应用,降低企业的IT成本,提高运维效率,如何使用云服务器地址呢?本文将为您详细介绍使用云服务器地址的步骤及注意事项。获取云服务器地址在使用云服务器之前,首先需要获取云服务器……

    2024-03-28
    0153
  • 126邮箱发送服务器

    在设置电子邮件客户端时,我们需要填写一些必要的信息,以便将邮件正确地发送到我们的邮箱服务器,这些信息包括SMTP服务器地址、端口号、用户名和密码等,以下是如何在126邮箱中设置这些信息的步骤:1. 打开你的电子邮件客户端,如Outlook、Thunderbird等。2. 点击“工具”或“设置”菜单,然后选择“帐户设置”或“账户设置”。……

    2023-11-29
    0244
  • redis查不到数据如何解决问题

    当使用Redis进行数据存储时,有时可能会遇到无法查询到数据的问题,这种情况可能是由于多种原因引起的,下面将介绍一些常见的解决方法。1. 检查键名和命令:确保你正在使用的是正确的键名和Redis命令,Redis的键名是区分大小写的,因此请确保键名的大小写与存储时一致,还要确认你正在使用正确的Redis命令来查询数据,例如`GET`命令……

    2023-11-12
    0439
  • Redis通过scan查找不过期的 key(方法详解)

    Redis的scan命令可以用于查找不过期的key。具体方法是使用MATCH参数,设置为"*",然后遍历返回的结果。

    2024-05-20
    0127

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入