您好,欢迎访问一九零五行业门户网

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

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
其它类似信息

推荐信息