在《Redis探索之旅(3)- 在Windows下将Redis注册成本地服务》我们讲述了如何在Windows下的操作方法,在这篇文章中,我们看看在Linux下如何操作。
我们按照下面的步骤一步一步来。
(1)将redis目录下的初始化脚本拷贝到/etc/rc.d/init.d目录;
redis的初始化脚本目录为:/usr/local/src/redis/utils/redis_init_script
将这个目录拷贝到目标目录,同时将文件夹名称进行修改:
- cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
然后添加注册服务,如下所示:
执行后,可能你会遇到下面的错误:
因此,我们还需要对初始化脚本做一些修改。
(2)修改脚本
我们首先打开redis脚本,修改后内容如下:
- #!/bin/sh
- #chkconfig: 2345 80 90
- # Simple Redis init.d script conceived to work on Linux systems
- # as it does use of the /proc filesystem.
-
- REDISPORT=6379
- EXEC=/usr/local/redis/bin/redis-server
- CLIEXEC=/usr/local/redis/bin/redis-cli
-
- PIDFILE=/var/run/redis_${REDISPORT}.pid
- CONF="/etc/redis/${REDISPORT}.conf"
-
- case "$1" in
- start)
- if [ -f $PIDFILE ]
- then
- echo "$PIDFILE exists, process is already running or crashed"
- else
- echo "Starting Redis server..."
- $EXEC $CONF &
- fi
- ;;
- stop)
- if [ ! -f $PIDFILE ]
- then
- echo "$PIDFILE does not exist, process is not running"
- else
- PID=$(cat $PIDFILE)
- echo "Stopping ..."
- $CLIEXEC -p $REDISPORT shutdown
- while [ -x /proc/${PID} ]
- do
- echo "Waiting for Redis to shutdown ..."
- sleep 1
- done
- echo "Redis stopped"
- fi
- ;;
- *)
- echo "Please use start or stop as first argument"
- ;;
- esac
脚本的修改地方主要涉及以下几个地方:
(a)第二行增加如下内容
(b)原脚本EXEC和CLIEXEC的值因为目录不同而有所修改
- EXEC=/usr/local/redis/bin/redis-server
- CLIEXEC=/usr/local/redis/bin/redis-cli
(c)redis启动的命令改为以后台方式启动
(d)将redis配置文件拷贝到/etc/redis/端口ID.conf,如下所示:
- mkdir /etc/redis
- cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
默认情况下,redis启动时不启用鉴权认证,如果有需要,可以在配置文件中进行设置requirepass参数。
通过上面的脚本修改后,我们可以再次使用下面的命令进行注册服务:
注册成功后,然后就是启动服务了,如下所示:
至此,单实例redis服务便启动起来了。