Redis 单机,主从(高可用)配置

作者:Rui 发布时间:May 31, 2016 分类:Redis,BIGDATA 浏览:944

本文将介绍如何安装Redis , 单机模式,主从(高可用),本文示例均在Ubuntu 14.04 TLS下完成,安装Reids版本为 3.2

Redis 单机安装

首先准备一台linux主机或者虚拟机
下载Redis Cache

wget http://download.redis.io/releases/redis-3.2.0.tar.gz

1.png

解压缩 Redis Cache ,并编译Redis

tar -zxf redis-3.2.0.tar.gz
cd redis-3.2.0
cd deps
make hiredis lua jemalloc linenoise geohash-int
cd ../
make

注意:请确保make gcc工具已安装,如果没安装,请执行以下命令安装:

sudo apt-get install make gcc

copy文件
copy编译之后的文件到你想要安装的目录,本文以/opt/redis 为例:
需要copy的文件 :
mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis.conf redis-sentinel redis-server redis-trib.rb

配置环境变量
将 /opt/redis 加入PATH

export PATH=$PATH:/opt/redis

之后执行redis-server -v 可以看到redis server的版本
2.png

启动redis-server

 redis-server /opt/redis/redis.conf  &

执行结果
3.png

Redis 主从安装(Sentinel 高可用)

本示例,将安装一主两从的redis 部署,并使用Sentinel保证redis的高可用性,因为Sentinel是采用投票方式,所以至少要保证至少有三台主机运行Sentinel,才能够保证redis的高可用性。
一般使用Sentinel的方式,有以下几种,
1) 单独建立Sentinel的独立监控系统,来监控Redis Server的运行,此种方式,Sentinel不受Redis Server的影响。
1.png
2) 将Sentinel和Redis Server 运行在同一个主机(使用redis-server启动Sentinel)。
2.png
也可以同时使用两种,本示例将使用第一种方式来搭建Redis 主从部署, 准备六台主机或者三台主机(每台主机上运行Redis和Sentinel)
三台机器:
10.0.0.6 Master/Sentinel
10.0.0.4 Slave1 /Sentinel
10.0.0.5 Slave2 /Sentinel

Redis主从设置比较简单,将之前编译好的Redis 拷贝三台主机的/opt/redis目录下
修改redis.conf,添加Replication Config

slaveof  <master-ip> port

如果Master 开启了密码验证,就需要在配置文件设置密码:

masterauth <password>

如果想设置slave只读,可以再配置文件添加

slave-read-only

设置Sentinel的配置
新建Sentinel配置文件,并启动Sentinel监控,三个Sentinel的配置文件一样

port 26379
daemonize yes   // 以后台运行
protected-mode no  // 3.2 添加属性,关闭安全模式

sentinel monitor mymaster 10.0.0.6 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
logfile "/var/log/sentinel.log"

启动Redis
首先启动Redis Master

redis-server /opt/redis/redis.conf &

之后启动 三台redis-sentinel

redis-sentinel sentinel.conf

redis.png
Sentinel会自动检测到其他的Sentinel,这里需要保证protected-mode设置为no和26379端口可以访问,Sentinel默认使用26379端口,进行相互通信,该端口可以在Sentinel配置文件修改
redis2.png
然后,在启动其他两台Redis Slave, 会在Sentinel的日志中看到两台slave信息
redis3.png
这样,高可用的Redis就启动完成了

验证Redis Sentinel failover
使用pkill 关掉Redis Master进程,查看Sentinel日志:
redis4.png
可以看到Sentinel执行了failover,10.0.0.4 成为了新的Master,然后连接新的Master,执行Info查看Redis信息:
10.0.0.4的INFO信息
redis5.png
10.0.0.5的INFO信息
redis6.png
可以看到Sentinel已成功将10.0.0.4转化成Master,并修改10.0.0.5连接到新的Master,这时如果重启10.0.0.6,就会发现它会以Slave的身份连接到10.0.0.4。

标签: none

添加新评论 »