首先我启动了三台服务器,每台服务器上面有各有两台redis节点,首选确保这三台机器可以通过ssh互相访问,可以免密登录,不知道免密登录的可以看我另一篇文章https://editor.csdn.net/md?not_checkout=1&articleId=124603669
直接写脚本:
vim redisclusuter-start-stop
内容:
#!/bin/bash
#定义一个变量并赋值为当前服务器运行redis-server进程的数量
redisServerNum=`ps -ef |grep redis-server |grep -v grep|wc -l`
#判断当前服务器有没有redis服务进程在运行 如果没有启动,如果有关闭
if [ $redisServerNum == 0 ]; then
echo 'redis集群开始启动'
/usr/redis/bin/redis-server /usr/redis/cluster/8001/redis.conf
/usr/redis/bin/redis-server /usr/redis/cluster/8002/redis.conf
ssh 192.168.50.103 /usr/redis/bin/redis-server /usr/redis/cluster/8003/redis.conf
ssh 192.168.50.103 /usr/redis/bin/redis-server /usr/redis/cluster/8004/redis.conf
ssh 192.168.50.104 /usr/redis/bin/redis-server /usr/redis/cluster/8005/redis.conf
ssh 192.168.50.104 /usr/redis/bin/redis-server /usr/redis/cluster/8006/redis.conf
echo 'redis集群启动完毕'
else
echo 'redis集群开始关闭'
/usr/redis/bin/redis-cli -h 192.168.50.102 -p 8001 shutdown
/usr/redis/bin/redis-cli -h 192.168.50.102 -p 8002 shutdown
ssh 192.168.50.103 /usr/redis/bin/redis-cli -h 192.168.50.103 -p 8003 shutdown
ssh 192.168.50.103 /usr/redis/bin/redis-cli -h 192.168.50.103 -p 8004 shutdown
ssh 192.168.50.104 /usr/redis/bin/redis-cli -h 192.168.50.104 -p 8005 shutdown
ssh 192.168.50.104 /usr/redis/bin/redis-cli -h 192.168.50.104 -p 8006 shutdown
echo 'redis集群关闭完毕'
fi
ip地址和路径改成自己的,然后文件改为可执行文件:
chmod u+x redisclusuter-start-stop
执行脚本
这样三台机子上的redis都启动成功啦!