Linux下编译安装Redis以及主从复制配置(一)

2015-07-16 12:08:51 · 作者: · 浏览: 7

Redis的安装配置很简单,而且很早之前就装过Redis,可这几天再次安装时居然又遗忘了一些细节,看来好记性不如烂笔头,还是在博客记录一下比较好,至少不用总是抱度娘大腿了。


今天编译安装了几次,发现居然没在prefix指定目录生成文件??看了半天结果发现PREFIX我用了小写字母。。。


看来还是得记录一次正确的操作步骤,免得再次出现这种窘迫。


一、选择版本


前往官方网站:http://www.redis.io/download


选择一个适合的稳定版本,比如最新的redis-3.0稳定版(stable),获得下载地址:


http://download.redis.io/releases/redis-3.0.0.tar.gz


二、编译安装


cd /usr/local/src
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
make
#可选执行命令:make test


#这里记得PREFIX是大写,小写不生效!
make PREFIX=/usr/local/redis-3.0.0 install


#建立软链接
ln -s /usr/local/redis-3.0.0 /usr/local/redis


#创建目录并拷贝默认配置文件过去
mkdir -p /usr/local/redis/{etc,var}
cp redis.conf /usr/local/etc/


#如果是对其他机器提供服务,推荐在redis.conf中设置监听IP为0.0.0.0,启动就可以开一个进程,默认是2个,还有个127.0.0.1
bind 0.0.0.0


cd /usr/local/src


wget http://download.redis.io/releases/redis-3.0.0.tar.gz


tar zxvf redis-3.0.0.tar.gz


cd redis-3.0.0


make


#可选执行命令:make test


?


#这里记得PREFIX是大写,小写不生效!


make PREFIX=/usr/local/redis-3.0.0 install


?


#建立软链接


ln -s /usr/local/redis-3.0.0 /usr/local/redis


#创建目录并拷贝默认配置文件过去


mkdir -p /usr/local/redis/{etc,var}


cp redis.conf /usr/local/etc/
?


#如果是对其他机器提供服务,推荐在redis.conf中设置监听IP为0.0.0.0,启动就可以开一个进程,默认是2个,还有个127.0.0.1


bind 0.0.0.0



安装完成后,redis目录结构如下:


[root@cache-ns-4 ~]# tree /usr/local/redis? ? ? ? ? ? ?
/usr/local/redis
├── bin? ? ? ? ? ? ? #bin下面存放各种执行文件
│? ├── redis-benchmark
│? ├── redis-check-aof
│? ├── redis-check-dump
│? ├── redis-cli? ? #redis客户端执行文件
│? ├── redis-sentinel -> /usr/local/redis-3.0.0/bin/redis-server
│? └── redis-server? #redis服务端执行文件
├── dump.rdb? ? ? ? ? #启动后默认生成的数据文件,可以在redis.conf中设置dir的路径参数指定到其他目录
├── etc
│? └── redis.conf
└── var


?


[root@cache-ns-4 ~]# tree /usr/local/redis? ? ? ? ? ? ?


/usr/local/redis


├── bin? ? ? ? ? ? ? #bin下面存放各种执行文件


│? ├── redis-benchmark


│? ├── redis-check-aof


│? ├── redis-check-dump


│? ├── redis-cli? ? #redis客户端执行文件


│? ├── redis-sentinel -> /usr/local/redis-3.0.0/bin/redis-server


│? └── redis-server? #redis服务端执行文件


├── dump.rdb? ? ? ? ? #启动后默认生成的数据文件,可以在redis.conf中设置dir的路径参数指定到其他目录


├── etc


│? └── redis.conf


└── var


?


三、注册服务


①、编写服务控制脚本


vi /etc/init.d/redis


#!/bin/bash
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:? - 80 12
# description: Redis is a persistent key-value database
# processname: redis-server
# config:? /usr/local/redis/etc/redis.conf
# pidfile:? /usr/local/redis/var/redis.pid
?
source /etc/init.d/functions
?
BIN="/usr/local/redis/bin"
CONFIG="/usr/local/redis/etc/redis.conf"
PIDFILE="/var/run/redis.pid"
?
?
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
?
RETVAL=0
prog="redis-server"
desc="Redis Server"
?
start() {
?
? ? if [ -e $PIDFILE ];then
? ? ? echo "$desc already running...."
? ? ? exit 1
? ? fi
?
? ? echo -n $"Starting $desc: "


? ? #使用中偶尔发现服务器启动后居然不转入后台,所以在最后加了一个“&”
? ? daemon $BIN/$prog $CONFIG &
?
? ? RETVAL=$?
? ? echo
? ? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
? ? return $RETVAL
}
?
stop() {
? ? echo -n $"Stop $desc: "
? ? killproc $prog
? ? RETVAL=$?
? ? echo
? ? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
? ? return $RETVAL
}
?
restart() {
? stop
? start
}
?
case "$1" in
?start)
? ? start
? ? ;;
?stop)
? ? stop
? ? ;;
?restart)
? ? restart
? ? ;;
?condrestart)
? ? [ -e /var/lock/subsys/$prog ] && restart
? ? RETVAL=$?
? ? ;;
?status)
? ? status $prog
? ? RETVAL=$?
? ? ;;
? *)
? ? echo $"Usage: $0 {start|stop|restart|condrestart|status}"
? ? RETVAL=1
esac
?
exit $RETVAL


?


?


#!/bin/