欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Linux下Redis数据库的安装方法与自动启动脚本分享

程序员文章站 2022-05-04 17:28:54
...
安装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

更多Linux下Redis数据库的安装方法与自动启动脚本分享相关文章请关注PHP中文网!

相关标签: Redis 安装