centos

redis在centos上的主从切换如何配置

小樊
51
2025-05-12 22:03:28
栏目: 云计算

在CentOS上配置Redis的主从切换,可以按照以下步骤进行:

1. 安装Redis

首先,确保你已经在两台服务器上安装了Redis。如果没有安装,可以使用以下命令进行安装:

sudo yum install epel-release
sudo yum install redis

2. 配置主服务器(Master)

编辑主服务器的Redis配置文件 /etc/redis.conf

sudo vi /etc/redis.conf

确保以下配置项正确:

port 6379
bind 0.0.0.0  # 或者指定具体的IP地址
requirepass your_master_password  # 设置主服务器的密码

保存并退出编辑器,然后启动Redis服务:

sudo systemctl start redis
sudo systemctl enable redis

3. 配置从服务器(Slave)

编辑从服务器的Redis配置文件 /etc/redis.conf

sudo vi /etc/redis.conf

确保以下配置项正确:

port 6380  # 从服务器的端口,可以与主服务器不同
slaveof master_ip 6379  # 主服务器的IP地址和端口
masterauth your_master_password  # 主服务器的密码

保存并退出编辑器,然后启动Redis服务:

sudo systemctl start redis
sudo systemctl enable redis

4. 验证配置

在主服务器上,使用 redis-cli 连接到Redis并设置一个键值对:

redis-cli -h master_ip -p 6379 -a your_master_password
set test_key "Hello, Master!"

在从服务器上,使用 redis-cli 连接到Redis并获取该键值对:

redis-cli -h slave_ip -p 6380 -a your_master_password
get test_key

如果返回 Hello, Master!,说明配置成功。

5. 主从切换

如果主服务器宕机,你需要将从服务器提升为主服务器。可以使用 redis-cli 进行手动切换:

  1. 停止从服务器的Redis服务:

    sudo systemctl stop redis
    
  2. 将从服务器的配置文件 /etc/redis.conf 中的 slaveof 行注释掉或删除。

  3. 启动从服务器的Redis服务:

    sudo systemctl start redis
    
  4. 在从服务器上,使用 redis-cli 连接到Redis并执行 SLAVEOF NO ONE 命令,将其提升为主服务器:

    redis-cli -h slave_ip -p 6380 -a your_master_password
    SLAVEOF NO ONE
    
  5. 在主服务器上,使用 redis-cli 连接到Redis并执行 SLAVEOF 命令,将其设置为从服务器:

    redis-cli -h master_ip -p 6379 -a your_master_password
    SLAVEOF slave_ip 6380
    

6. 自动化切换

为了实现自动化的主从切换,可以使用Redis Sentinel。Sentinel可以监控Redis实例的健康状态,并在主服务器宕机时自动将从服务器提升为主服务器。

安装Redis Sentinel

在两台服务器上安装Redis Sentinel:

sudo yum install redis-sentinel

配置Sentinel

编辑Sentinel配置文件 /etc/redis-sentinel.conf

sudo vi /etc/redis-sentinel.conf

添加以下配置:

sentinel monitor mymaster master_ip 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

保存并退出编辑器,然后启动Sentinel服务:

sudo systemctl start redis-sentinel
sudo systemctl enable redis-sentinel

通过以上步骤,你可以在CentOS上配置Redis的主从切换,并实现自动化的故障转移。

0
看了该问题的人还看了