您的位置:首页 > 数据库 > Redis

Redis安装和主从配置

2017-03-27 00:00 309 查看
摘要: redis linux

1 下载

登录redis官网下载,如下图:



2 环境

两台服务器,系统Centos6.8
主:192.168.99.180
从:192.168.99.187

3 安装

在两个服务器上进行如下操作:
tar -zxvf redis-3.2.6.tar.gz
cd redis-3.2.6
make

make test
make install

注意:

1、提示无gcc

解决:安装gcc,yum -y install gcc

2、zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

解决:make MALLOC=libc

3、You need tcl 8.5 or newer in order to run the Redis test

解决:安装tcl

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/
cd  /usr/local/tcl8.6.1/unix/
./configure
make
make install


4 配置

创建文件夹

cd /var
mkdir -p redis/run
mkdir -p redis/log

修改配置

主redis的redis.conf配置:
daemonize yes
pidfile /var/redis/run/redis.pid
logfile /var/redis/log/redis.log
dir /var/redis/data

bind 0.0.0.0

从redis的redis.conf配置:
daemonize yes
pidfile /var/redis/run/redis.pid
logfile /var/redis/log/redis.log
dir /var/redis/data

bind 0.0.0.0

实现主从配置有两种方式:
1 在从redis的redis.conf中配置如下:
slaveof 192.168.99.180 6379
2 不用再从redis的redis.conf中做配置,在从redis起来后,通过命令redis-cli进入redis命令模式下,再通过如下命令做配置:
slaveof 192.168.99.180 6379

移动配置

cp redis.conf /etc/

配置init脚本

vi /etc/init.d/redis

将以下部分粘贴到脚本中:

# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

###########################
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"

case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
##############################

添加执行权限

chmod +x /etc/init.d/redis

设定开机启动

chkconfig redis on

启动与停止redis

service redis start

service redis stop
3ff0

5 启动和测试

启动:

service redis start

主redis



从redis



6 深入了解

概述
1、Redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。
2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。

主从复制过程:见下图



过程:
1:当一个从数据库启动时,会向主数据库发送sync命令,
2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来
3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。
4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。

注意:
1:redis2.8之前的版本:当主从数据库同步的时候从数据库因为网络原因断开重连后会重新执行上述操作,不支持断点续传。redis2.8之后支持断点续传。
2:如果你使用主从复制,那么要确保你的master激活了持久化,或者确保它不会在当掉后自动重启。原因:slave是master的完整备份,因此如果master通过一个空数据集重启,slave也会被清掉。
3:在配置redis复制功能的时候如果主数据库设置了密码,需要在从数据的配置文件中通过masterauth参数设置主数据库的密码,这样从数据库在连接主数据库时就会自动使用auth命令认证了。相当于做了一个免密码登录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis Linux