欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-03 14:34:09
...

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