您的位置:首页 > 数据库 > Redis

Redis创建启停服务以及设置开机自启动

2018-01-24 14:56 661 查看
在完成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主服务时也可以同时启动了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 服务