1.下载并安装
- $ wget http://download.redis.io/releases/redis-4.0.1.tar.gz
- $ tar xzf redis-4.0.1.tar.gz
- $ cd redis-4.0.1
- $ make
2.编辑配置文件
- #bind 127.0.0.1
- protected-mode no
- port 6379
- daemonize yes
3.编辑Redis启动配置,将脚本复制到:/etc/rc.d/init.d/目录下
- #!/bin/bash
- #chkconfig: 2345 55 25
- #description: Starts,stops and restart the redis-server
- #source: http://blog.csdn.net/chhxo/article/details/8673020
- #update by: Y.ch
- #usage: ./script_name -p [port] {start|stop|status|restart}
- # Source function library.
- . /etc/rc.d/init.d/functions
- # Source networking configuration.
- . /etc/sysconfig/network
- # Check networking is up.
- [ “$NETWORKING” = “no” ] && exit 0
- RETVAL=0
- REDIS_PORT=6379
- PID=
- if [ “$1” = “-p” ]; then
- REDIS_PORT=$2
- shift 2
- fi
- REDIS_DIR=“/root/redis-4.0.1”
- REDIS=“$REDIS_DIR/src/redis-server”
- PROG=$(basename $REDIS)
- CONF=“$REDIS_DIR/redis-$REDIS_PORT.conf”
- if [ ! -f $CONF ]; then
- if [ -f “$REDIS_DIR/redis.conf” ];then
- CONF=“$REDIS_DIR/redis.conf”
- else
- echo -n $“$CONF not exist.”;warning;echo
- exit 1
- fi
- fi
- PID_FILE=`grep “pidfile” $CONF|cut -d ‘ ‘ -f2`
- PID_FILE=${PID_FILE:=/var/run/redis.pid}
- LOCKFILE=“/var/lock/subsys/redis-$REDIS_PORT”
- if [ ! -x $REDIS ]; then
- echo -n $“$REDIS not exist.”;warning;echo
- exit 0
- fi
- start() {
- echo -n $“Starting $PROG: “
- $REDIS $CONF
- RETVAL=$?
- if [ $RETVAL -eq 0 ]; then
- success;echo;touch $LOCKFILE
- else
- failure;echo
- fi
- return $RETVAL
- }
- stop() {
- echo -n $“Stopping $PROG: “
- if [ -f $PID_FILE ] ;then
- read PID < “$PID_FILE”
- else
- failure;echo;
- echo -n $“$PID_FILE not found.”;failure;echo
- return 1;
- fi
- if checkpid $PID; then
- kill -TERM $PID >/dev/null 2>&1
- RETVAL=$?
- if [ $RETVAL -eq 0 ] ;then
- success;echo
- echo -n “Waiting for Redis to shutdown ..”
- while checkpid $PID;do
- echo -n “.”
- sleep 1;
- done
- success;echo;rm -f $LOCKFILE
- else
- failure;echo
- fi
- else
- echo -n $“Redis is dead and $PID_FILE exists.”;failure;echo
- RETVAL=7
- fi
- return $RETVAL
- }
- restart() {
- stop
- start
- }
- rhstatus() {
- status -p $PID_FILE $PROG
- }
- hid_status() {
- rhstatus >/dev/null 2>&1
- }
- case “$1” in
- start)
- hid_status && exit 0
- start
- ;;
- stop)
- rhstatus || exit 0
- stop
- ;;
- restart)
- restart
- ;;
- status)
- rhstatus
- RETVAL=$?
- ;;
- *)
- echo $“Usage: $0 -p [port] {start|stop|status|restart}”
- RETVAL=1
- esac
- exit $RETVA
4.注册服务
- chkconfig –add redis
- chkconfig –level 345 redis on #指定服务在3、4、5级别运行
5.脚本参数
- redis -p [port] [start|stop|status|restart]
- #参数说明:
- #-p [port] : 指定redis实例的端口,用于多实例的服务器
- #start:启动指定端口的Redis服务
- #stop:停止指定端口的Redis服务
- #status:进程状态
- #restart:先关闭Redis服务,再启动Redis服务
- #注:不指定端口时,脚本默认指定启动6379端口的redis
6.用法实例
- service redis -p 6381 start #启动6381端口实例的redis
- /etc/init.d/redis start #默认启动6379端口实例的redis