在完成redis配置以及可以正常启停之后,我们需要将redis做成服务
1.在redis根目录中找到utils文件夹,找到里边的redis_init_script文件,这个文件就是redis给咱们做的服务demo,我们可以略作修改其中的配置:
#!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/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如上图所示,这是redis自带的demo,但是有些配置需要我们重新进行配置:
#redis服务器监听的端口 REDISPORT=6379 #服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径,下同。 EXEC=/usr/local/bin/redis-server #客户端位置 CLIEXEC=/usr/local/bin/redis-cli #Redis的PID文件位置,可以在redis.conf中的pidfile中指定目录 PIDFILE=/var/run/redis_${REDISPORT}.pid #配置文件位置,需要修改 CONF="/etc/redis/redis.conf"好了,更改完这些配置,可以进行保存了,将其保存重命名redis6379保存至/etc/init.d目录下,就可以使用命令进行启停了
service redis6379 start service redis6379 stop 使用service redis6379 stop时,如果你的redis.conf中的bind参数不是设置127.0.0.1或者加了密码,那么此处会报连接失败的错误,那么我们就需要修改一下脚本: #首先定位到此处 $CLIEXEC -p $REDISPORT shutdown 然后我们需要对此行做一些修改: #-h 为你的redis设置的ip,此处不加默认127.0.0.1 #-a 如果你设置了redis密码,此处需要加上,否则无法执行shutdown命令 $CLIEXEC -h $REDISHOST -p $REDISPORT -a $PASSWORD shutdown 同时在脚本上方添加两个自定义参数: REDISHOST=xxxx.xxxx.xxxx.xxxx 你的bind中所配置的ip地址 PASSWORD=******** 你的redis密码 如果在启动时报:env: /etc/init.d/redis: Permission denied这个错误,则需要执行如下命令: chmod a+x /etc/init.d/redis6379那么现在可以正常启动停止服务了,接下来需要设置开机自启动:
此处直接配置开启自启动 chkconfig redisd on
将报错误: service redisd does not support chkconfig
在启动脚本开头添加如下两行注释以修改其运行级别:
#!/bin/sh # chkconfig: 2345 90 10 # description: Redis is a persistent key-value database #ok,设置完此项配置后,reboot一下试试吧!
有时候,我们也需要用到哨兵模式,所以我们可以在脚本的启动语句中增添对哨兵的启动
首先增加两个自定义参数:
SENCONF=/etc/redis/sentinel.conf 你的sentinel.conf所在地址 SENEXEC=/usr/local/bin/redis-sentinel
然后修改脚本
echo "Starting Redis server..."
$EXEC $CONF
echo "Redis already started!"
#以下为新增
$SENEXEC $SENCONF
echo "Redis Sentinel already started!"
好了,配置完成后你的哨兵可以在你启动redis主服务时也可以同时启动了