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

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

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

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

一、选择版本

前往官方网站:

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

二、编译安装

cd /usr/local/src
wget
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

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/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


②、注册服务与启动

#给执行权限
chmod +x /etc/init.d/redis

#开机启动
chkconfig redis on

#启动服务
service redis start

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/580554b0bebbc0b1481d4319b04bd99e.html