Heim  >  Artikel  >  Datenbank  >  Linux下编译安装Redis以及主从复制配置

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

WBOY
WBOYOriginal
2016-06-07 16:00:201019Durchsuche

Redis的安装配置很简单,而且很早之前就装过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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn