Redis多实例启动脚本

1,修改redis.conf

设置redis后台启动

daemonize yes

2,编写脚本

vi /etc/init.d/redis

#!/bin/sh
#chkconfig: 2345 10 90
#description: Startup and stop script for Redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT_1=6380
REDISPORT_2=6381
REDISPORT_3=6382
REDISPORT_4=6383
REDISPORT_5=6384
REDISPORT_6=6385
REDISPORTS=($REDISPORT_1 $REDISPORT_2 $REDISPORT_3 $REDISPORT_4 $REDISPORT_5 $REDISPORT_6)

EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli

PIDFILE_1=/var/run/redis_6380.pid
PIDFILE_2=/var/run/redis_6381.pid
PIDFILE_3=/var/run/redis_6382.pid
PIDFILE_4=/var/run/redis_6383.pid
PIDFILE_5=/var/run/redis_6384.pid
PIDFILE_6=/var/run/redis_6385.pid
PIDFILES=($PIDFILE_1 $PIDFILE_2 $PIDFILE_3 $PIDFILE_4 $PIDFILE_5 $PIDFILE_6)

CONF_1=/usr/local/redis/etc/redis_6380.conf
CONF_2=/usr/local/redis/etc/redis_6381.conf
CONF_3=/usr/local/redis/etc/redis_6382.conf
CONF_4=/usr/local/redis/etc/redis_6383.conf
CONF_5=/usr/local/redis/etc/redis_6384.conf
CONF_6=/usr/local/redis/etc/redis_6385.conf
CONFS=($CONF_1 $CONF_2 $CONF_3 $CONF_4 $CONF_5 $CONF_6)

case "$1" in
    start)
        i=0
        for PID in ${PIDFILES[@]}
        do
                if [ -e $PID ]
                then
                        echo "$PID has exist, process is running"
                else
                        echo "$PID Start ..."
                        $EXEC ${CONFS[i]}
                fi
                if [ "$?" == "0" ]
                then
                        echo "$PID is running"
                else
                        echo "$PID is failed to start"
                fi
                let i++
        done
        ;;

    stop)
        i=0
        for PID in ${PIDFILES[@]}
        do
                if [ ! -e $PID ]
                then
                        echo "$PID does not exist, process is not running"
                else
                        echo "$PID Stoping ..."
                        $REDIS_CLI -p ${REDISPORTS[i]} SHUTDOWN
                        sleep 2
                        while [ -e $PID ]
                        do
                            echo "Waiting for Redis to shutdown ..."
                            sleep 1
                        done
                        echo "$PID stopped"
                fi
                let i++
        done
        ;;

   restart)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart}" >&2
        exit 1
esac

1,$1:执行命令的第一个参数,例如/etc/init.d/redis start,start就是第一个参数

2,${0}:文件所在路径,例如文件所在路径为/etc/init.d/redis,那么${0}的值就是该路径

3,脚本要放在 /etc/init.d/ 下,不然执行server redis ... 的命令会提示找不到redis

3,添加执行权限

chmod +x /etc/init.d/redis
service redis start
service redis stop<pre name="code" class="plain">service redis restart

4,设置开机启动

chkconfig redis on
chkconfig --add redis
时间: 2024-11-05 16:04:51

Redis多实例启动脚本的相关文章

02.利用Shell开发Redis多实例启动脚本

一.Redis部署情况 ## 软件部署情况 [[email protected] ~]# ls -ld /data/apps/redis <==目录本身及以下所有文件的属主/组为redis lrwxrwxrwx 1 root root 24 Oct 26 11:33 /data/apps/redis -> /data/apps/redis-4.0.14/ ## 实例部署情况 [[email protected] ~]# tree /data/redis/ <==目录本身及以下所有文件的属

MySQL 多实例启动脚本

企业案例:开发mysql多实例启动脚本:mysql多实例路径为: [[email protected] ~]# ls -ld /data/3306/ drwxr-xr-x 3 mysql mysql 4096 Oct 9 13:28 /data/3306/ 1)已知mysql多实例启动命令为: mysql_safe --default-file=/data/3306/my.cnf & 2)停止命令为: mysqladmin -uroot -poldboy123 -S /data/3306/mys

开发mysql单实例或多实例启动脚本

单实例 启动:mysqld_safe --user=mysql & 停止:mysqladmin -u root -proot shutdown 开发脚本 #!/bin/bash #chkconfig: 2345 30 50 #Date:2017-6-29 #Author:xcn([email protected]) #version Ultimates PID="/var/run/mysqld/mysqld.pid" user="root"       #定

编写mysql多实例启动脚本

脚本原理: 启动MySQL动作: mysqld_safe来执行启动 停止MySQL动作: 使用mysqladmin来执行停止动作 重启的MySQL动作:    原理就是先停止,然后再启动 但是要注意:简单的sleep来等待停止和启动过程极可能出现在短时间内重复运行重启,mysqld_safe报错提示已经启动了一个实例的问题 这里可以参考MySQL提供的默认启动脚本mysqld.service中的wait_for_pid()这个函数. 以下是启动脚本,效果如图: 脚本: 1 #!/bin/sh 2

redis 多实例启动

默认Redis程序安装在/usr/local/redis目录下: 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379: Redis的启动命令路径:/usr/local/bin/redis-server. 可以指定端口启动多个Redis进程. #/usr/local/bin/redis-server --port 6380 &    #启动6380端口的redis实例. ====================以下每个进程对应一个配置文件(

Redis集群启动脚本

redis版本:redis-5.0.0 Centos: centos 7 64位 #!/bin/bash redis_path="/usr/local/cluster/" cluster_num=`ps aux | grep redis | wc -l` if [ "${cluster_num}" -le 0 ] then echo -e "===== Success: Has killed all cluster progress." else

MySQL单实例或多实例启动脚本

1.       [[email protected] scripts]# cat mysqld01.sh 2.       #!/bin/bash 3. 4.       . /etc/init.d/functions 5.       user=root 6.       pass=888888 7.       path="/application/mysql/bin" 8.       function usage(){ 9.           echo "Usag

多实例MySQL启动脚本

开发mysql多实例启动脚本: 已知mysql多实例启动命令为:mysqld_safe–defaults-file=/data/3306/my.cnf & 停止命令为:mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown 要求:用函数,case语句.if语句等实现. #!/bin/sh [ -f /etc/init.d/functions ]&&. /etc/init.d/functions||exit #Def

使用Redis启动脚本设置开机自启动

推荐在生产环境中使用启动脚本方式启动redis服务.启动脚本 redis_init_script 位于位于Redis的 /utils/ 目录下. #大致浏览下该启动脚本,发现redis习惯性用监听的端口名作为配置文件等命名,我们后面也遵循这个约定. #redis服务器监听的端口 REDISPORT=6379 #服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径,下同. EXEC=/usr