当前位置 博文首页 > Linux下Redis数据库的安装方法与自动启动脚本分享

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

    作者:kevinhua 时间:2021-02-02 21:15

    安装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
    

    js
    下一篇:没有了