【redis运维】redis自己主动安装脚本(仅仅安装redis)
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
【redis运维】redis自己主动安装脚本(仅仅安装redis)的更多相关文章
- Redis总结(七)Redis运维常用命令
redis 服务器端命令 redis 127.0.0.1:6380> time ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...
- 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 ...
- Redis总结(七)Redis运维常用命令(转载)
redis 服务器端命令 redis 127.0.0.1:6380> time ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...
- redis运维相关(基本数据库命令)【十四】
-----------------------------运维相关------------------------- redis持久化,两种方式1.rdb快照方式2.aof日志方式 --------- ...
- Redis运维利器 -- RedisManager
Redis作为一个基于内存的可持久化的日志型.Key-Value数据库,以其出色的性能表现以及高可用性在许多公司有着举足轻重的地位.伴随着业务量的增长,redis集群的规模不可避免的需要扩大,此时re ...
- Redis运维的一些常用的命令总结
最近一直管理部门的一些redis的服务器,所以现在来总结一下redis的一些常用的运维命令: 1.time 显示服务器的时间,时间戳(秒) 微秒数 redis 127.0.0.1:6380> ...
- redis运维的一些知识点
恰好看到一些redis需要主要的东西 记下 供参考 原文地址 http://hi.baidu.com/ywdblog/item/1a8c6ed42edf01866dce3fe3 最近在线上实际使用了一 ...
- redis 运维手册
redis cli命令 - milkty - 博客园https://www.cnblogs.com/kongzhongqijing/p/6867960.html Redis多个数据库 - EasonJ ...
- redis运维相关
一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?二.redis双写不一致三.雪崩和穿透四.redis的过期策略,LRU五.redis是如何实现高性能高并发六.如何保证Redis的高并发和 ...
随机推荐
- [转]Redis 数据类型
本文转自:http://www.runoob.com/redis/redis-data-types.html Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),s ...
- Mac上微信小程序官方开发工具卡死的问题
Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...
- Label控件
文本控件包含标签控件(label).按钮控件(button).文本框控件(textBox)和有格式文本控件(richtextBox) Label控件可以说是最简单的控件,是System.windo ...
- Vue 引入第三方js.css的方式
转自:https://blog.csdn.net/csdn_yudong/article/details/78795743 我们以 jQuery 为例,来讲解 一.绝对路径直接引入,全局可用 主入口页 ...
- 为什么要学习 UML?
UML 的首要价值是沟通和理解.好的图形可以帮助沟通设计思想,尤其是要回避许多细节时,图形也可以帮助你理解软件系统或业务流程.作为团队的成员,尝试弄清楚某些东西时,图形有助于理解和沟通整个团队所理解到 ...
- hdu 3415 Max Sum of Max-K-sub-sequence 单调队列。
Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- C# 后台处理图片的几种方式
第一种: 将上传图片直接保存到本地 var supportedTypes = new[] { "jpg", "jpeg", "png", & ...
- 在Pandas中直接加载MongoDB的数据
在使用Pandas进行数据处理的时候,我们通常从CSV或EXCEL中导入数据,但有的时候数据都存在数据库内,我们并没有现成的数据文件,这时候可以通过Pymongo这个库,从mongoDB中读取数据,然 ...
- python Django 路由之正则表达式
一.路由系统,URL 1. url(r'^index',views.index) #默认的 url(r'^home',views.Home.as_view()) # ...
- ES6学习笔记(二)-字符串的扩展
一.字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点. 表示法只限于码点在\u0000~\uFFFF之间的字符, ...