Lin*_*iel 29
更新:
今天,我建议您查看redis-sentinel,这是Redis的作者antirez用于监控和自动故障转移的工具.
原始回复:
检查SLAVEOF命令:http://redis.io/commands/slaveof
当您发现主服务器出现故障时,请SLAVEOF NO ONE在其中一个服务器上发布一个服务器以将其提升为主服务器.然后将你的另一个奴隶指向它的新主人.另请参阅"在不停机的情况下升级或重新启动Redis实例":http://redis.io/topics/admin
对于管理配置文件,您可以按照这些方式执行某些操作(注意:未经测试,仅作为示例).下面的示例假定每个服务器(/etc/redis/server1.master.conf,/etc/redis/server1.slave.conf等)有两个配置文件,一个将该服务器作为某个预定义主服务器的从属服务器:
#!/bin/sh
master()
{
server_name=$1
redis-cli slaveof no one
ln -sf /etc/redis/$server_name.master.conf /etc/redis/$server_name.conf
}
# Usage: slave(server1 server2 6379)
slave()
{
server_name=$1
master=$2
master_port=$3
redis-cli slaveof $master $master_port
ln -sf /etc/redis/$server_name.slave.conf /etc/redis/$server_name.conf
}
Run Code Online (Sandbox Code Playgroud)
您可以使用例如动态编辑它们,而不是使用预定义的配置文件sed.基本上,您可以确保slaveof在配置文件中始终有一个节,指向主节点或slaveof no one.然后使用重新配置sed(再次,未经测试,仅作为思考的食物):
#!/bin/sh
master()
{
server_name=$1
config=$server_name.conf
redis-cli slaveof no one
sed -i "s/^slaveof.*/slaveof no one/" $config
}
# Usage: slave(server1 server2 6379)
slave()
{
server_name=$1
config=$server_name.conf
master=$2
master_port=$3
redis-cli slaveof $master $master_port
sed -i "s/^slaveof.*/slaveof $master $master_port/" $config
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19380 次 |
| 最近记录: |