在CentOS上配置Redis的主从切换,可以按照以下步骤进行:
首先,确保你已经在两台服务器上安装了Redis。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install redis
编辑主服务器的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
编辑从服务器的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
在主服务器上,使用 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!
,说明配置成功。
如果主服务器宕机,你需要将从服务器提升为主服务器。可以使用 redis-cli
进行手动切换:
停止从服务器的Redis服务:
sudo systemctl stop redis
将从服务器的配置文件 /etc/redis.conf
中的 slaveof
行注释掉或删除。
启动从服务器的Redis服务:
sudo systemctl start redis
在从服务器上,使用 redis-cli
连接到Redis并执行 SLAVEOF NO ONE
命令,将其提升为主服务器:
redis-cli -h slave_ip -p 6380 -a your_master_password
SLAVEOF NO ONE
在主服务器上,使用 redis-cli
连接到Redis并执行 SLAVEOF
命令,将其设置为从服务器:
redis-cli -h master_ip -p 6379 -a your_master_password
SLAVEOF slave_ip 6380
为了实现自动化的主从切换,可以使用Redis Sentinel。Sentinel可以监控Redis实例的健康状态,并在主服务器宕机时自动将从服务器提升为主服务器。
在两台服务器上安装Redis Sentinel:
sudo yum install redis-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的主从切换,并实现自动化的故障转移。