Rumah  >  Artikel  >  pangkalan data  >  Linux下编译安装Redis以及主从复制配置

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

WBOY
WBOYasal
2016-06-07 16:00:201019semak imbas

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn