环境
例:
192.168.72.61
192.168.72.62
192.168.72.63
在三台服务器上都安装redis
a.下载redis(https://download.redis.io/releases/)上传至以上三台服务器,
b.解压命令:tar -xvf redis-3.2.7.tar.gz -C 解压到的目录
c.进入到解压目录执行make
d.编译成功后,进入src文件夹,执行make install进行Redis安装
cd src
make install
e.返回redis目录,创建bin和etc文件,复制文件至etc和bin中
#cd ~redis
#mkdir bin
#mkdir etc
复制文件
#mv redis.conf ~/redis/etc/
#mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server ~/redis/bin
f.开启运行redis
#vim ~/redis/etc/redis.conf
将daemonize no改成 daemonize yes
g.启动redis
#cd ~/redis/bin
#./redis-server
配置主从
192.168.72.61:配置文件redis.conf,修改一下内容:
bind 192.168.72.61 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
replicaof 192.168.72.61 6379 #在192.168.72.61上不用配置,只要需在1192.168.72.62、192.168.72.63上配置
192.168.72.62:配置文件redis.conf,修改一下内容:
bind 192.168.72.62 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
replicaof 192.168.72.61 6379 #在192.168.72.61上不用配置,只要需在1192.168.72.62、192.168.72.63上配置
masterauth cccc #master密码,在192.168.72.61上不用配置,只要需在192.168.72.62、192.168.72.63上配置
192.168.72.63:配置文件redis.conf,修改一下内容:
bind 192.168.72.63 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
replicaof 192.168.72.61 6379 #在192.168.72.61上不用配置,只要需在192.168656.102、192.168.56.103上配置
masterauth cccc #master密码,在192.168.72.61上不用配置,只要需在192.168.72.62、192.168.72.63上配置
启动服务:redis-server 配置文件路径,查看查看主节点集群状态:info replication
(下图是模拟192.168.72.61挂掉后,192.168.72.62升级成master,192.168.72.61恢复后成为slave,192.168.72.62依旧是master)
配置哨兵
192.168.72.61:配置文件sentinel.conf,修改一下内容:
protected-mode no #关闭保护模式,可以外部访问。
daemonize yes #设置为后台启动。
logfile /data/redis/log/sentinel.log #日志文件。系统盘不够大的建议修改到大磁盘中,也可以不修改。
sentinel monitor mymaster 192.168.72.61 6379 2 #指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。 注意:三台哨兵这里的ip配置均为主节点ip 和端口。
sentinel auth-pass mymaster psw66 #当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel down-after-milliseconds mymaster 3000 #这里设置了主机多少秒无响应,则认为挂了。
snetinel parallel-syncs mymaster 1 #主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的。
sentinel failover-timeout mymaster 180000 #故障转移的超时时间,这里设置为三分钟。
启动服务:redis-sentinel 配置文件路径,查看查看主节点集群状态:info sentinel
192.168.72.61:26379> info sentinel
Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.72.62:6379,slaves=2,sentinels=3 #哨兵已经监听到主节点IP端口和运行状态,并且有2个从节点,3个哨兵。
哨兵模式的优缺点
a.优点
哨兵集群,基于主从复制模式,所有的主从配置优点,它全有
主从可以切换,故障可以转移,系统的可用性就会更好
哨兵模式就是主从模式的升级,手动到自动,更加健壮!
b.缺点
Redis不好在线扩容,集群容量一旦到达上限,在线扩容就十分麻烦
哨兵模式的配置繁琐