OPS 2017/09/10 Y.ch

CentOS 配置 Redis

1.下载并安装

  1. $ wget http://download.redis.io/releases/redis-4.0.1.tar.gz    
  2. $ tar xzf redis-4.0.1.tar.gz    
  3. $ cd redis-4.0.1    
  4. $ make   

2.编辑配置文件

  1. #bind 127.0.0.1    
  2. protected-mode no    
  3. port 6379    
  4. daemonize yes    

3.编辑Redis启动配置,将脚本复制到:/etc/rc.d/init.d/目录下

  1. #!/bin/bash    
  2. #chkconfig: 2345 55 25    
  3. #description: Starts,stops and restart the redis-server    
  4. #source: http://blog.csdn.net/chhxo/article/details/8673020    
  5. #update by: Y.ch    
  6. #usage: ./script_name -p [port] {start|stop|status|restart}    
  7. # Source function library.    
  8. . /etc/rc.d/init.d/functions    
  9. # Source networking configuration.    
  10. . /etc/sysconfig/network    
  11. # Check networking is up.    
  12. [ “$NETWORKING” = “no” ] && exit 0    
  13. RETVAL=0    
  14. REDIS_PORT=6379    
  15. PID=    
  16. if [ “$1” = “-p” ]; then    
  17.     REDIS_PORT=$2    
  18.     shift 2    
  19. fi    
  20. REDIS_DIR=“/root/redis-4.0.1”    
  21. REDIS=“$REDIS_DIR/src/redis-server”    
  22. PROG=$(basename $REDIS)    
  23. CONF=“$REDIS_DIR/redis-$REDIS_PORT.conf”    
  24. if [ ! -f $CONF ]; then    
  25.     if [ -f “$REDIS_DIR/redis.conf” ];then    
  26.         CONF=“$REDIS_DIR/redis.conf”    
  27.     else    
  28.         echo -n $“$CONF not exist.”;warning;echo    
  29.         exit 1    
  30.     fi    
  31. fi    
  32. PID_FILE=`grep “pidfile” $CONF|cut -d ‘ ‘ -f2`    
  33. PID_FILE=${PID_FILE:=/var/run/redis.pid}    
  34. LOCKFILE=“/var/lock/subsys/redis-$REDIS_PORT”    
  35. if [ ! -x $REDIS ]; then    
  36.     echo -n $“$REDIS not exist.”;warning;echo    
  37.     exit 0    
  38. fi    
  39.     
  40. start() {    
  41.     echo -n $“Starting $PROG: “    
  42.     $REDIS $CONF    
  43.     RETVAL=$?    
  44.     if [ $RETVAL -eq 0 ]; then    
  45.         success;echo;touch $LOCKFILE    
  46.     else    
  47.         failure;echo    
  48.     fi    
  49.     return $RETVAL    
  50. }    
  51. stop() {    
  52.     echo -n $“Stopping $PROG: “    
  53.     if [ -f $PID_FILE ] ;then    
  54.         read PID <  “$PID_FILE”    
  55.     else    
  56.         failure;echo;    
  57.         echo -n $“$PID_FILE not found.”;failure;echo    
  58.         return 1;    
  59.     fi    
  60.     if checkpid $PID; then    
  61.         kill -TERM $PID >/dev/null 2>&1    
  62.         RETVAL=$?    
  63.         if [ $RETVAL -eq 0 ] ;then    
  64.             success;echo    
  65.             echo -n “Waiting for Redis to shutdown ..”    
  66.             while checkpid $PID;do    
  67.                 echo -n “.”    
  68.                 sleep 1;    
  69.             done    
  70.             success;echo;rm -f $LOCKFILE    
  71.         else    
  72.             failure;echo    
  73.         fi    
  74.     else    
  75.         echo -n $“Redis is dead and $PID_FILE exists.”;failure;echo    
  76.         RETVAL=7    
  77.     fi    
  78.     return $RETVAL    
  79. }    
  80. restart() {    
  81.     stop    
  82.     start    
  83. }    
  84. rhstatus() {    
  85.     status -p $PID_FILE $PROG    
  86. }    
  87. hid_status() {    
  88.     rhstatus >/dev/null 2>&1    
  89. }    
  90. case “$1” in    
  91. start)    
  92. hid_status && exit 0    
  93. start    
  94. ;;    
  95. stop)    
  96. rhstatus || exit 0    
  97. stop    
  98. ;;    
  99. restart)    
  100. restart    
  101. ;;    
  102. status)    
  103. rhstatus    
  104. RETVAL=$?    
  105. ;;    
  106. *)    
  107. echo $“Usage: $0 -p [port] {start|stop|status|restart}”    
  108. RETVAL=1    
  109. esac    
  110. exit $RETVA    

4.注册服务

  1. chkconfig –add redis    
  2. chkconfig –level 345 redis on #指定服务在3、4、5级别运行    

5.脚本参数

  1. redis -p [port] [start|stop|status|restart]    
  2. #参数说明:    
  3. #-p [port] : 指定redis实例的端口,用于多实例的服务器    
  4. #start:启动指定端口的Redis服务    
  5. #stop:停止指定端口的Redis服务    
  6. #status:进程状态    
  7. #restart:先关闭Redis服务,再启动Redis服务    
  8. #注:不指定端口时,脚本默认指定启动6379端口的redis   

6.用法实例

  1. service redis -p 6381 start #启动6381端口实例的redis    
  2. /etc/init.d/redis start #默认启动6379端口实例的redis    
已婚,有娃,已过而立之年,奔波于北京,深圳与济南之间的靠写代码为生,喜欢玩游戏的胖子。

发表评论

电子邮件地址不会被公开。