337  
   0
Linux下Redis数据库的安装方法与自动启动脚本分享
作者:系统管理员于 2016年08月23日 发布在分类 / 编程 / 数据库 下,并于 2016年08月23日 编辑

安装Redis

 (1) 下载Redis

wget http://redis.googlecode.com/files/redis-2.2.11.tar.gz
tar xzvf redis-2.2.11.tar.gz

 (2) 编译并安装Redis

make && make install

 (3) 复制并修改配置文件

cp redis.conf /etc/redis.conf
vi /etc/redis.conf

注意修改以下几项:

daemonize yes
loglevel warning
logfile /var/log/redis.log
maxmemory 2GB

(自行斟酌是不要开通Virtual Memory选项)

 (4) 设置Redis-Server自动启动服务

上网下载启动脚本(gist.github.com,搜索redis init.d),并简单修改

(至少需要修改redis、REDIS_CONF_FILE)

vi /etc/init.d/redisctl
chmod 755 redisctl
cp /etc/init.d/redisctl /etc/rc.d/init.d/redisctl \
&& ln -s /etc/init.d/redisctl /etc/rc.d/rc2.d/S90redisctl && ln -s /etc/init.d/redisctl /etc/rc.d/rc3.d/S90redisctl \
&& ln -s /etc/init.d/redisctl /etc/rc.d/rc4.d/S90redisctl && ln -s /etc/init.d/mongod /etc/rc.d/rc5.d/S90redisctl
chkconfig --add redisctl

(5) 重新启动后可以测试redis-server是否正常启动

```redis-cli set foo Bar
redis-cli get foo

Redis自动启动脚本

```ruby
#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database
# processname: redis-server
# config: /etc/redis.conf
# config: /etc/sysconfig/redis
# pidfile: /var/run/redis.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

redis="/usr/local/bin/redis-server"
prog=$(basename $redis)

REDIS_CONF_FILE="/etc/redis.conf"

[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {
 [ -x $redis ] || exit 5
 [ -f $REDIS_CONF_FILE ] || exit 6
 echo -n $"Starting $prog: "
 daemon $redis $REDIS_CONF_FILE
 retval=$?
 echo
 [ $retval -eq 0 ] && touch $lockfile
 return $retval
}

stop() {
 echo -n $"Stopping $prog: "
 killproc $prog -QUIT
 retval=$?
 echo
 [ $retval -eq 0 ] && rm -f $lockfile
 return $retval
}

restart() {
 stop
 start
}

reload() {
 echo -n $"Reloading $prog: "
 killproc $redis -HUP
 RETVAL=$?
 echo
}

force_reload() {
 restart
}

rh_status() {
 status $prog
}

rh_status_q() {
 rh_status >/dev/null 2>&1
}

case "$1" in
 start)
 rh_status_q && exit 0
 $1
 ;;
 stop)
 rh_status_q || exit 0
 $1
 ;;
 restart|configtest)
 $1
 retval=$?
 echo
 [ $retval -eq 0 ] && rm -f $lockfile
 return $retval
}

restart() {
 stop
 start
}

reload() {
 echo -n $"Reloading $prog: "
 killproc $redis -HUP
 RETVAL=$?
 echo
}

force_reload() {
 restart
}

rh_status() {
 status $prog
}

rh_status_q() {
 rh_status >/dev/null 2>&1
}

case "$1" in
 start)
 rh_status_q && exit 0
 $1
 ;;
 stop)
 rh_status_q || exit 0
 $1
 ;;
 restart|configtest)
 $1
 retval=$?
 echo
 [ $retval -eq 0 ] && rm -f $lockfile
 return $retval
}

restart() {
 stop
 start
}

reload() {
 echo -n $"Reloading $prog: "
 killproc $redis -HUP
 RETVAL=$?
 echo
}

force_reload() {
 restart
}

rh_status() {
 status $prog
}

rh_status_q() {
 rh_status >/dev/null 2>&1
}

case "$1" in
 start)
 rh_status_q && exit 0
 $1
 ;;
 stop)
 rh_status_q || exit 0
 $1
 ;;
 restart|configtest)
 $1
 ;;
 reload)
 rh_status_q || exit 7
 $1
 ;;
 force-reload)
 force_reload
 ;;
 status)
 rh_status
 ;;
 condrestart|try-restart)
 rh_status_q || exit 0
  ;;
 *)
 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
 exit 2
esac

Redis自动启动脚本

记得修改:

(1) ―chuid group:user

(2) ln /etc/init.d/redisctl /etc/rc2.d/redisctl,重复rc3,rc4,rc5

启动脚本:

#! /bin/sh
### BEGIN INIT INFO
# Provides:  redis-server
# Required-Start: $syslog
# Required-Stop: $syslog
# Should-Start:  $local_fs
# Should-Stop:  $local_fs
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: redis-server - Persistent key-value db
# Description:  redis-server - Persistent key-value db
### END INIT INFO

DAEMON=/usr/local/bin/redis-server
DAEMON_ARGS=/etc/redis.conf
NAME=redis-server
DESC=redis-server
PIDFILE=/var/run/redis.pid
test -x $DAEMON || exit 0
test -x $DAEMONBOOTSTRAP || exit 0
set -e
case "$1" in
 start)
 echo -n "Starting $DESC: "
 touch $PIDFILE
 # chown redis:redis $PIDFILE
 if start-stop-daemon ―start ―quiet ―umask 007 ―pidfile $PIDFILE ―chuid redis:redis ―exec $DAEMON ― $DAEMON_ARGS
 then
  echo "$NAME."
 else
  echo "failed"
 fi
 ;;
 stop)
 echo -n "Stopping $DESC: "
 if start-stop-daemon ―stop ―retry 10 ―quiet ―oknodo ―pidfile $PIDFILE ―exec $DAEMON
 then
  echo "$NAME."
 else
  echo "failed"
 fi
 rm -f $PIDFILE
 ;;
 restart|force-reload)
 ${0} stop
 ${0} start
 ;;
 *)
 echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
 exit 1
 ;;
esac
exit 0


 标签

status restart reload init.d retval redisctl rh_status_q pidfile server 启动

 知识评论当前评论数0

 推荐知识


 访问权限

创建人 系统管理员
文档编辑权限 来自分类
文档阅读权限 来自分类
分类阅读权限 无限制
分类编辑权限 系统管理员(人员)      789(人员)      系统管理员(人员)     
分类审核权限
分类预览权限 无限制
分类下载权限 无限制
 历史版本

修改日期 修改人 备注
2016-08-23 13:01:26[当前版本] 系统管理员 CREAT

 目录
    ©2014-2017 北京知轩科技有限公司 京ICP备15024440号-1 wcp知识库系统-V3.5.9

    服务时间:9:00-18:00销售联系方式QQ1:2715215634QQ2:3323024029微信:EKCP-ZXKJ