博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【redis运维】redis自己主动安装脚本(仅仅安装redis)
阅读量:5034 次
发布时间:2019-06-12

本文共 4133 字,大约阅读时间需要 13 分钟。

Redis自己主动安装部署

本文总共分为4个部分:

        redis自己主动安装脚本文件夹结构说明;

        redis自己主动安装脚本内容;

        redis的操作系统服务脚本说明;

        本文引用的资料链接地址。

说明:本文未涉及redis内存分配器部分的内容。

第一部分

Redis自己主动安装脚本文件夹结构说明:

# ls 查看当前文件夹包括下面3个文件

-- install_redis.sh        # redis自己主动安装脚本

-- redis-2.8.9.tar.gz      # redis安装包(需make,make test,make install)

-- redis_service_script   # redis 操作系统服务脚本(用于配置redis服务开机自启动,以及redis服务管理命令)

第二部分

###########################redis自己主动安装脚本内容開始(install_redis.sh)######################

#!/bin/bash

# Version:  v1.0 by JiangYanguo on 2014-05-14
# Desc:     auto make, make install and configure redis
REDIS_CONF="/etc/redis.conf"

# 检查redis的安装包是否存在

if [ "`ls redis-*.tar.gz >/dev/null 2>&1 ; echo $?

`" -ne 0 ]

then
    echo "Error: redis*.tar.gz file doesn't exists."
    exit
else
   REDIS_PACKAGE="`ls -ltr redis-*.tar.gz | head -1 | awk '{print $NF}' `"
fi

# 安装redis。make,make test,make install

# install redis
echo "Info: install redis..."
tar zxf ${REDIS_PACKAGE}
REDIS_DIR="`ls -ltr | egrep '^d' | awk '{print $NF}'`"
cd ${REDIS_DIR}
pwd
make
make test
if [ "$?" -nt 0 ];then
  echo "Some dependent packages are needed."
  exit
fi
make install
echo "Info: set ${REDIS_CONF} ..."
cd ..

# 设置redis配置文件,data文件夹为/home/redis

# set /etc/redis.conf
cp redis.conf /etc/
sed -i 's/^daemonize\(.*\)/#daemonize\1/g'  ${REDIS_CONF}
sed -i '2 adaemonize yes' ${REDIS_CONF}
sed -i 's/^dir\(.*\)/#dir\1/g' ${REDIS_CONF}
sed -i '2 adir \/home\/redis\/' ${REDIS_CONF}

# set memory allocate method
[ "`egrep 'vm.overcommit_memory=1' /etc/sysctl.conf | wc -l`" -eq 0 ] && echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
/sbin/sysctl -p
# add redis user
useradd redis
# set redis data dir
mkdir -p /home/redis/
chown -R redis.redis /home/redis

#设置redis服务开机自启动。也是redis的管理服务

# set redis service
echo "Info: set redis service ..."
cp redis_service_script /etc/init.d/redis
chmod +x /etc/init.d/redis
chkconfig --add redis
chkconfig redis on
#
echo "Info: finish installing redis."
echo ""

########################## redis自己主动安装脚本内容结束 (install_redis.sh)#####################################

第三部分

########################## redis的操作系统服务脚本内容開始(redis_service_script)#########################################

#!/bin/bash

# redis - Startup script for redis
# chkconfig: 2345 85 152345 85 15
# description: startup script for redis
# processname: redis-server
# config: /etc/redis.conf
# pidfile: /var/run/redis.pid
# datafilepath: /home/redis/
#
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
   
PIDFILE="/var/run/redis.pid"
CONF="/etc/redis.conf"
## start
function start(){
  echo "Info: start redis..."
   if [ -f $PIDFILE ]
   then
       echo "$PIDFILE exists, process is already running or crashed"
   else
       echo "Starting Redis server..."
       $EXEC $CONF
   fi
   if [ "$?"="0" ]
   then
       echo "Redis is running..."
   fi
}
## stop
function stop(){
  echo "Info: stop redis..."
  if [ ! -f $PIDFILE ];then
      echo "$PIDFILE does not exist, process is not running"
  else
      PID=$(cat $PIDFILE)
      echo "Stopping ..."
      $REDIS_CLI -p $REDISPORT SHUTDOWN
      while [ -x ${PIDFILE} ]
      do
          echo "Waiting for Redis to shutdown ..."
          sleep 1
      done
      echo "Redis stopped"
  fi
}
## restart
function restart(){
  stop
  echo ""
  start
  echo ""
}
## info
function info(){
  echo "Info: redis info..."
  if [ -f $PIDFILE ];then
      $REDIS_CLI info
  else
     echo "$PIDFILE does not exist, process is not running"
  fi
}
## status
function status(){
  REDIS_SERVER_COUNT="`netstat -nltp | grep redis-server | wc -l`"
  if [ -f $PIDFILE ] && [ "${REDIS_SERVER_COUNT}" -gt 0 ]
  then
      echo "Info: redis is running."
  elif [ ! -f $PIDFILE ]
  then
      echo "$PIDFILE does not exist, process is not running"
  elif [ "${REDIS_SERVER_COUNT}" -eq 0 ]
  then
      echo "Redis is not listening any port."
  fi
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  info)
    info
    ;;
  status)
    status
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|info|status}"
    
esac

########################## redis的操作系统服务脚本内容结束(redis_service_script)#########################################

第四部分

本文參考的资料链接地址:

Redis安装: http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3117997.html

Redis安装: http://blog.chinaunix.net/uid-790245-id-3766268.html

You'll need Skype Credit
Free via Skype

转载于:https://www.cnblogs.com/mqxnongmin/p/10561471.html

你可能感兴趣的文章
Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
查看>>
PMD使用提醒
查看>>
Codeforces 887D Ratings and Reality Shows
查看>>
论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
查看>>
Linux记录-salt分析
查看>>
Android Studio默认快捷键
查看>>
函数式编程与参数
查看>>
SSAS使用MDX生成脱机的多维数据集CUB文件
查看>>
HDU 2191 【多重背包】
查看>>
51nod 1433 0和5【数论/九余定理】
查看>>
【AHOI2013复仇】从一道题来看DFS及其优化的一般步骤和数组分层问题【转】
查看>>
less 分页显示文件内容
查看>>
如何对数据按某列进行分层处理
查看>>
[Qt] this application failed to start because it could not find or load the Qt platform plugin
查看>>
Git Submodule管理项目子模块
查看>>
学会和同事相处的30原则
查看>>
文件操作
查看>>
jquery基本选择器
查看>>
hdu 1010 dfs搜索
查看>>
搭建wamp环境,数据库基础知识
查看>>