I'm Ych

Colorful day | 一条代码鱼

0%

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] {startstopstatusrestart}

  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” $CONFcut -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. start() {

  40. echo -n $“Starting $PROG: “

  41. $REDIS $CONF

  42. RETVAL=$?

  43. if [ $RETVAL -eq 0 ]; then

  44. success;echo;touch $LOCKFILE

  45. else

  46. failure;echo

  47. fi

  48. return $RETVAL

  49. }

  50. stop() {

  51. echo -n $“Stopping $PROG: “

  52. if [ -f $PID_FILE ] ;then

  53. read PID <  “$PID_FILE”

  54. else

  55. failure;echo;

  56. echo -n $“$PID_FILE not found.”;failure;echo

  57. return 1;

  58. fi

  59. if checkpid $PID; then

  60. kill -TERM $PID >/dev/null 2>&1

  61. RETVAL=$?

  62. if [ $RETVAL -eq 0 ] ;then

  63. success;echo

  64. echo -n “Waiting for Redis to shutdown ..”

  65. while checkpid $PID;do

  66. echo -n “.”

  67. sleep 1;

  68. done

  69. success;echo;rm -f $LOCKFILE

  70. else

  71. failure;echo

  72. fi

  73. else

  74. echo -n $“Redis is dead and $PID_FILE exists.”;failure;echo

  75. RETVAL=7

  76. fi

  77. return $RETVAL

  78. }

  79. restart() {

  80. stop

  81. start

  82. }

  83. rhstatus() {

  84. status -p $PID_FILE $PROG

  85. }

  86. hid_status() {

  87. rhstatus >/dev/null 2>&1

  88. }

  89. case “$1” in

  90. start)

  91. hid_status && exit 0

  92. start

  93. ;;

  94. stop)

  95. rhstatus  exit 0

  96. stop

  97. ;;

  98. restart)

  99. restart

  100. ;;

  101. status)

  102. rhstatus

  103. RETVAL=$?

  104. ;;

  105. *)

  106. echo $“Usage: $0 -p [port] {startstopstatusrestart}”

  107. RETVAL=1

  108. esac

  109. exit $RETVA

4.注册服务

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

5.脚本参数

  1. redis -p [port] [startstopstatusrestart]
  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