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 CreditFree via Skype

【redis运维】redis自己主动安装脚本(仅仅安装redis)的更多相关文章

  1. Redis总结(七)Redis运维常用命令

    redis 服务器端命令 redis 127.0.0.1:6380> time  ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...

  2. 12.Redis运维点

    12.Redis运维点12.1 Linux配置优化12.1.1 内存分配控制12.1.2 swappiness12.1.3 THP12.1.4 OOM killer12.1.5 使用NTP12.1.6 ...

  3. Redis总结(七)Redis运维常用命令(转载)

    redis 服务器端命令 redis 127.0.0.1:6380> time  ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...

  4. redis运维相关(基本数据库命令)【十四】

    -----------------------------运维相关------------------------- redis持久化,两种方式1.rdb快照方式2.aof日志方式 --------- ...

  5. Redis运维利器 -- RedisManager

    Redis作为一个基于内存的可持久化的日志型.Key-Value数据库,以其出色的性能表现以及高可用性在许多公司有着举足轻重的地位.伴随着业务量的增长,redis集群的规模不可避免的需要扩大,此时re ...

  6. Redis运维的一些常用的命令总结

    最近一直管理部门的一些redis的服务器,所以现在来总结一下redis的一些常用的运维命令: 1.time  显示服务器的时间,时间戳(秒) 微秒数 redis 127.0.0.1:6380> ...

  7. redis运维的一些知识点

    恰好看到一些redis需要主要的东西 记下 供参考 原文地址 http://hi.baidu.com/ywdblog/item/1a8c6ed42edf01866dce3fe3 最近在线上实际使用了一 ...

  8. redis 运维手册

    redis cli命令 - milkty - 博客园https://www.cnblogs.com/kongzhongqijing/p/6867960.html Redis多个数据库 - EasonJ ...

  9. redis运维相关

    一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?二.redis双写不一致三.雪崩和穿透四.redis的过期策略,LRU五.redis是如何实现高性能高并发六.如何保证Redis的高并发和 ...

随机推荐

  1. Github - 修改语言统计

    前些日子看到有人提到这个问题,于是自己也试着解决了一番,在此记录下来,希望对大家有帮助. Github中创建一个repository后会出现一个统计使用语言的颜色条. 就是下面这个东西: 似乎很多人遇 ...

  2. [javaSE] 集合框架(Map概述)

    Map集合,将key对象映射到value对象 三个主要的子类:Hashtable,HashMap,TreeMap Hashtable:底层是哈希表数据结构,不允许使用null值,线程同步 HashMa ...

  3. DynamicJasper入门

    JasperReport 在了解DynamicJasper之前不得不先了解一下jasperReport,jasperReport是基于Java的一个开源的报表工具,它使得你可以在Java环境下像其它的 ...

  4. CenOs7安装oracle图文详细过程(02)

    原创作品,转载请在文章头部(显眼位置)注明出处:https://www.cnblogs.com/sunshine5683/p/10011574.html 8.修改用户限制 vim /etc/secur ...

  5. 搭建 Visual Studio 2012 + DXperience-13.2.6 + MySql 开发平台

    一. 开发环境 1. 此开发平台主要用来开发基于.NET 4.0及以上版本的应用 2. 点击此下载 Visual Studio 2012 Ultimate 中文版开发工具 3. 点击此下载 DXper ...

  6. Thymeleaf学习记录(4)--$/*/#/@语法

    表达式符号 Thymeleaf对于变量的操作主要有$\*\#三种方式: 变量表达式: ${...},是获取容器上下文变量的值. 选择变量表达式: *{...},获取指定的对象中的变量值.如果是单独的对 ...

  7. laravel开发之-(1)数据库链接测试

    composer安装成功后,网站建设的操作记录: 一.修改默认首页.伪静态配置文件 1.将serve.php改为index.php 2.public文件夹下的.htaccess文件复制到根目录下 二. ...

  8. 浏览器根对象window之值为数值的属性

    1. number属性 1.1 length length 属性返回在当前窗口中frames的数量(包括IFRAMES). 该属性值与window.frames.length属性值相等. 1.2 in ...

  9. OpenCV获取与设置像素点的值的几个方法

    Title: OpenCV OpenCV像素值的获取与设置 Fn 1 : 使用 Mat 中对矩阵元素的地址定位的知识 (参考博文:OpenCV中对Mat里面depth,dims,channels,st ...

  10. react常用命令

    npm install -g create-react-appcreate-react-app my-appcd my-app/ 启动项目:npm start 安装依赖:npm install 编译: ...