哨兵模式-搭建
redis集群架构
redis 一主两从 sentinel 三个
安装Redis
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
解压
tar xzf redis-4.0.6.tar.gz
编译
make
复制redis安装目录下src文件夹下的常用工具
mkdir /usr/local/reids
cp redis-server /usr/local/bin
cp redis-benchmark /usr/local/bin
cp redis-check-rdb /usr/local/bin
cp redis-sentinel /usr/local/bin
cp redis-cli /usr/local/bin
cp redis.conf /usr/local/bin
更改Redis-server配置文件
vim redis.conf
redis-master
注释默认绑定ip地址
#bind 127.0.0.1
关闭保护模式
protected-mode no
设置master认证密码
masterauth "12345678"
设置redis连接密码
requirepass "12345678"
开启AOF持久化设置
appendonly yes
redis-slaveof
复制6379的配置文件
cp redis6379.conf redis6380.conf
更改端口号
port 6378
添加主节点信息
slaveof 172.24.128.120 6379
另一个从节点6381也是如此
启动redis
依次启动redis 先启主节点,再启从节点。
& 表示后台运行
./redis-server redis6379.conf &
./redis-server redis6380.conf &
./redis-server redis6381.conf &
更改Redis-Sentinel配置文件
vim sentinel26379.conf
protected-mode no //关闭保护模式
哨兵sentinel监控的redis主节点的 ip port
master-name 可以自己命名的主节点名字 只能由字母A-z、数字0-9 、这三个字符".-_"组成。
quorum 当这些quorum个数sentinel哨兵认为master主节点失联 那么这时 客观上认为主节点失联了
sentinel monitor
sentinel monitor mymaster 127.0.0.1 6379 2
当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码
设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码
sentinel auth-pass
sentinel auth-pass mymaster 12345678
指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,
在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel config-epoch mymaster 43
同时一时间最多0个slave可同时更新配置,建议数字不要太大,以免影响正常对外提供服务。
sentinel leader-epoch mymaster 43
其他两个哨兵的配置也是如此,直接复制两个文件,改下端口号
启动哨兵
依次启动
./redis-sentinel sentinel26379.conf &
./redis-sentinel sentinel26380.conf &
./redis-sentinel sentinel26381.conf &
测试
kill -9 6379 杀掉master服务 观察日志 再重启服务
登录实例中查看角色是否从master 变成slaveof
-c 以集群模式查看
./redis-cli -h 127.0.0.1 -p 6379 -a 12345678 -c
登录后用这个命令查看redis实例信息
info replication