Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
来源:互联网 发布:js json根据key取值 编辑:程序博客网 时间:2024/06/05 00:25
系统环境:
$ cat /etc/issue
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m
下载最新稳定版 redis-3.0.4.tar.gz,大小仅 1.3 MB。
$ sudo mkdir /opt/redis
$ cd /home/webapp
$ tar xzf redis-3.0.4.tar.gz
$ cd redis-3.0.4
$ sudo make PREFIX=/opt/redis install
之后查看 /opt/redis,下边只生成了一个目录,该目录下只有六个文件:
redis-benchmark redis-check-dump redis-sentinel
redis-check-aof redis-cli redis-server
安装完成。
$ cat /home/webapp/redis-3.0.4/utils/redis_init_script
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
将其拷贝到 /etc/rc.d/init.d 目录并重命名为 redis:
$ sudo cp /home/webapp/redis-3.0.4/utils/redis_init_script /etc/rc.d/init.d/redis
然后依据 redis 的安装路径修改 /etc/rc.d/init.d/redis 为:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/opt/redis/bin/redis-server
CLIEXEC=/opt/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/opt/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
注意红色字体部分:
$ cp /home/webapp/redis-3.0.4/redis.conf /opt/redis/6379.conf
/opt/redis/bin:/sbin:$PATH
执行 . /etc/profile 以使配置立即生效并使用 echo $PATH 验证之。
No news is good news,没有任何输出证明服务注册成功。
如果提示 chkconfig command not found,首先 rpm -q chkconfig 检查是否安装了 chkconfig,已安装的话检查 PATH 里是否有 /sbin。
服务启动,执行
$ redis-cli ping
PONG
表明服务已启动。
$ cat /etc/issue
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m
1. 下载安装
1.1 下载
官方下载地址:http://redis.io/download下载最新稳定版 redis-3.0.4.tar.gz,大小仅 1.3 MB。
1.2 安装
将下载的安装包放在用户目录下,如 /home/webapp,打算将其安装到 /opt/redis:$ sudo mkdir /opt/redis
$ cd /home/webapp
$ tar xzf redis-3.0.4.tar.gz
$ cd redis-3.0.4
$ sudo make PREFIX=/opt/redis install
之后查看 /opt/redis,下边只生成了一个目录,该目录下只有六个文件:
redis-benchmark redis-check-dump redis-sentinel
redis-check-aof redis-cli redis-server
安装完成。
2. 注册为系统服务
2.1 编辑服务脚本
查看安装包自带服务脚本:$ cat /home/webapp/redis-3.0.4/utils/redis_init_script
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
将其拷贝到 /etc/rc.d/init.d 目录并重命名为 redis:
$ sudo cp /home/webapp/redis-3.0.4/utils/redis_init_script /etc/rc.d/init.d/redis
然后依据 redis 的安装路径修改 /etc/rc.d/init.d/redis 为:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/opt/redis/bin/redis-server
CLIEXEC=/opt/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/opt/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
注意红色字体部分:
- chkconfig、description 两行注释必须,缺一不可,否则 service redis does not support chkconfig;
- $EXEC $CONF &,后边的 &,表示将服务转到后台运行;
- EXEC、CLIEXEC、CONF 等三处路径都要改。
2.2 复制配置文件
将 /home/webapp/redis-3.0.4 下提供的 redis.conf 默认配置文件拷贝到 redis 安装根目录下并重命名为 6379.conf:$ cp /home/webapp/redis-3.0.4/redis.conf /opt/redis/6379.conf
2.3 环境变量设置
追加以下内容到 /etc/profile 文件:/opt/redis/bin:/sbin:$PATH
执行 . /etc/profile 以使配置立即生效并使用 echo $PATH 验证之。
2.4 服务注册
$ chkconfig --add redisNo news is good news,没有任何输出证明服务注册成功。
如果提示 chkconfig command not found,首先 rpm -q chkconfig 检查是否安装了 chkconfig,已安装的话检查 PATH 里是否有 /sbin。
3. 服务启动及验证
$ sudo service redis start服务启动,执行
$ redis-cli ping
PONG
表明服务已启动。
参考资料
- Redis Download
- Redis Quick Start
0 0
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- Ubuntu 14 环境下编译安装 Redis 并将其注册为系统服务
- windows下启动redis以及将其注册为服务
- 将tomcat注册为系统服务,并增强其安全性
- Cent OS 下将Redis 注册为系统服务
- Windows环境下安装Mongo并注册为Windows服务
- linux环境下安装redis并部署为服务
- cengos 安装redis 并将redis启动添加为系统服务
- centos下安装redis并且注册为服务
- Windows7下将SVN注册为系统服务
- 将自己安装mysql注册为系统服务
- 源码安装redis3.2.3并注册为系统服务
- Windows环境下注册Java程序为系统服务
- RedHat5.0Linux下安装jdk,并配置环境
- 编译安装APACHE并添加为系统服务
- 如何将应用程序注册为系统服务
- coco2dx-js 实现 层拦截 点击响应事件
- android failed:EISDIR(Is a directory)错误
- 理解javascript函数式编程中的闭包
- 添加UIview自定义的分割线、去掉默认的cell分割线、默认选中某一个(行)cell的方法
- 纯代码 vs XIB vs Storyboard
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- x265-1.7版本-common/quant.cpp注释
- [微积分学习]Day.2 极限的概念
- DT_大数据梦工厂 第17课 RDD实战
- HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis,三大主流开源 NoSQL 数据库的 PK 两大主流传统 SQL 数据库
- Win10无线网络WiFi提示无法连接此网络的原因与解决方案
- 文件簇,文件扇区与flash中扇区及页的关系
- 类簇的设计
- 为什么使用命令行工具进行的提交没有在github主页上显示出来?