redis单机单实例一键安装脚本


脚本功能

redis单机单实例一键安装脚本

注意事项

1.仅适用于Linux/CentOS 64位

2.安装时需联网

步骤 1.下载并安装libunwind软件包(是TCMalloc依赖包) 2.下载并安装TCMalloc 3.下载并安装redis 4.配置redis 5.准备redis启动停止脚本 6.启动redis   脚本内容  
  1. #!/bin/bash
  2. # 2013-1-10 LEO chanyipiaomiao@163.com
  3. # Blog: http://www.bkjia.com
  4. # 脚本功能
  5. # redis单机单实例一键安装脚本
  6. # 注意事项
  7. # 仅适用于Linux/Centos 64位
  8. # 安装时需联网
  9. # 步骤
  10. # 1.下载并安装libunwind软件包(是TCMalloc依赖包)
  11. # 2.下载并安装TCMalloc
  12. # 3.下载并安装redis
  13. # 4.配置redis
  14. # 5.准备redis启动停止脚本
  15. # 6.启动redis
  16. #输出PATH变量
  17. export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  18. #定义存放软件目录
  19. software="/root/software"
  20. #如果软件目录不存在则新建该目录
  21. if [[ ! -e $software ]]; then
  22. mkdir -p $software
  23. fi
  24. #定义判断是否安装成功函数
  25. function installIsOK(){
  26. if [[ $2 == 0 ]]; then
  27. echo"$1 install ...... OK !"
  28. else
  29. echo"$1 install ...... Failure!"
  30. exit 1
  31. fi
  32. }
  33. #进入软件目录
  34. cd $software
  35. # 1.下载并安装libunwind软件包(是TCMalloc依赖包)
  36. libunwind='libunwind-1.1'
  37. wget http://download.savannah.gnu.org/releases/libunwind/${libunwind}.tar.gz
  38. tar zxf ${libunwind}.tar.gz
  39. cd $libunwind
  40. ./configure && make && make install
  41. if [[ $? == 0 ]]; then
  42. installIsOK ${libunwind} 0
  43. else
  44. installIsOK ${libunwind} 1
  45. fi
  46. cd $software
  47. # 2.下载并安装TCMalloc
  48. # TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来优化redis性能
  49. gperftools='gperftools-2.0'
  50. wget http://gperftools.googlecode.com/files/${gperftools}.tar.gz
  51. tar zxf ${gperftools}.tar.gz
  52. cd $gperftools
  53. ./configure
  54. make && make install
  55. if [[ $? == 0 ]]; then
  56. installIsOK ${gperftools} 0
  57. else
  58. installIsOK ${gperftools} 2
  59. fi
  60. echo"/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
  61. ldconfig
  62. cd $software
  63. # 3.下载并安装redis
  64. redis='redis-2.6.7'
  65. redis_dir='/usr/local/redis'
  66. wget http://redis.googlecode.com/files/${redis}.tar.gz
  67. tar zxf ${redis}.tar.gz
  68. cd $redis
  69. make PREFIX=${redis_dir} USE_TCMALLOC=yes install
  70. if [[ $? == 0 ]]; then
  71. installIsOK ${redis} 0
  72. else
  73. installIsOK ${redis} 3
  74. fi
  75. # 4.配置redis
  76. mkdir -p ${redis_dir}/etc
  77. mkdir -p ${redis_dir}/run
  78. mkdir -p ${redis_dir}/data/6379
  79. mkdir -p ${redis_dir}/log
  80. cp redis.conf ${redis_dir}/redis.conf
  81. #cp ${redis_dir}/redis.conf ${redis_dir}/etc/redis_6379.conf
  82. #生成配置文件
  83. redis_6379="${redis_dir}/etc/redis_6379.conf"
  84. cat >> ${redis_6379} << "EOF"
  85. daemonize yes
  86. pidfile /usr/local/redis/run/redis_6379.pid
  87. port 6379
  88. #bind 127.0.0.1
  89. timeout 300
  90. loglevel notice
  91. logfile /usr/local/redis/log/redis.log
  92. databases 16
  93. save 900 1
  94. save 300 10
  95. save 60 10000
  96. stop-writes-on-bgsave-error no
  97. rdbcompression yes
  98. rdbchecksum no
  99. dbfilename dump.rdb
  100. dir /usr/local/redis/data/6379
  101. #slave-serve-stale-data yes
  102. maxmemory 256mb
  103. maxmemory-policy volatile-lru
  104. maxmemory-samples 3
  105. appendonly yes
  106. appendfsync everysec
  107. no-appendfsync-on-rewrite no
  108. auto-aof-rewrite-percentage 100
  109. auto-aof-rewrite-min-size 64mb
  110. lua-time-limit 5000
  111. slowlog-log-slower-than 10000
  112. slowlog-max-len 1024
  113. hash-max-ziplist-entries 512
  114. hash-max-ziplist-value 64
  115. list-max-ziplist-entries 512
  116. list-max-ziplist-value 64
  117. set-max-intset-entries 512
  118. zset-max-ziplist-entries 128
  119. zset-max-ziplist-value 64
  120. activerehashing yes
  121. client-output-buffer-limit normal 0 0 0
  122. client-output-buffer-limit slave 256mb 64mb 60
  123. client-output-buffer-limit pubsub 32mb 8mb 60
  124. EOF
  125. # 5.redis启动停止脚本
  126. redis_start="/etc/rc.d/init.d/redis"
  127. cat >> ${redis_start} << "END"
  128. #!/bin/bash
  129. export PATH="/usr/local/redis/bin:$PATH"
  130. EXEC="/usr/local/redis/bin/redis-server"
  131. CLIEXEC="/usr/local/redis/bin/redis-cli"
  132. PIDFILE="/usr/local/redis/run/redis_6379.pid"
  133. CONF="/usr/local/redis/etc/redis_6379.conf"
  134. PORT="6379"
  135. case"$1" in
  136. start)
  137. if [ -f $$PIDFILE ]
  138. then
  139. echo"$PIDFILE exists, process is already running or crashed."
  140. else
  141. echo"Starting Redis server..."
  142. $EXEC$CONF
  143. fi
  144. ;;
  145. stop)
  146. if [ ! -f $PIDFILE ]
  147. then
  148. echo"$PIDFILE does not exist, process is not running."
  149. else
  150. PID=$(cat $PIDFILE)
  151. echo"Stopping ..."
  152. $CLIEXEC -p $PORT shutdown
  153. while [ -x /proc/${PID} ]
  154. do
  155. echo"Waiting for Redis to shutdown ..."
  156. sleep 1
  157. done
  158. echo"Redis stopped."
  159. fi
  160. ;;
  161. restart)
  162. $0 stop && $0 start
  163. ;;
  164. *)
  165. echo"Usage: $0 {start|stop|restart}" >&2
  166. exit 1
  167. ;;
  168. esac
  169. END
  170. #增加可执行权限
  171. chmod u+x ${redis_start}
  172. # 6.启动redis
  173. ${redis_start} start
  174. if [[ $? == 0 ]]; then
  175. echo"redis start ...... OK"
  176. else
  177. echo"redis start ...... Failure"
  178. fi

redis单机单实例一键安装脚本

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /2013年资料/5月/25日/redis单机单实例一键安装脚本

相关内容