Redis哨兵集群(笔记)-创新互联

Redis集群模式一共有3中,分别为主从集群、哨兵集群、Cluster集群(分片集群)。

成都创新互联从2013年成立,先为印江等服务建站,印江等地企业,进行企业商务咨询服务。为印江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

主从集群:优点是高可用、高并发,读写分离,数据持久化,缺点无法故障自动恢复,海量数据存储和高并发写的问题。

哨兵集群:优点是拥有主从集群的优点外,增加故障自动恢复功能,缺点同样是海量数据存储和高并发写的问题。

分片集群:集群中有多个master,每个master保存不同数据,每个master都可以有多个slave节点,master之间通过ping监测彼此健康状态,客户端请求可以访问集群任意节点,最终 都会被转发到正确节点。

1、环境准备

利用虚拟机创建了5台虚拟环境,分别为一主、五从(三个哨兵节点也设置成从节点)、三哨兵节点,在搭建哨兵集群时须提前完成主从集群的搭建,关于主从集群的搭建参考上篇

名称

IP地址

端口

说明

redis主节点

192.168.235.135

6379

主节点

redis从节点01

192.168.235.136

6379

从节点

redis从节点02

192.168.235.137

6379

从节点

redis哨兵01

192.168.235.138

26379

哨兵节点

redis哨兵02

192.168.235.139

26379

哨兵节点

redis哨兵03

192.168.235.140

26379

哨兵节点

2、主节点redis.conf配置文件修改

Redis主节点redis.conf配置文件中添加一行参数,即masterauth参数,原因是哨兵集群中如果该主节点宕机的话,会自动将其他从节点中的一个变成主节点,原先的主节点恢复后变成现有主节点的从节点:

#启用守护进程后,开启该功能后,redis默认后台运行
daemonize yes
#指定Redis监听端口,默认端口为6379,如果指定0端口,表示Redis不监听TCP连接
port 6379
#绑定的一个或多个主机地址,默认为127.0.0.1,未来方便测试成0.0.0.0,生产环境中不能为0.0.0.0
bind 0.0.0.0
#日志记录方式,默认为标准输出,如果配置为redis为守护进程方式运行,而这里又配置为标准输出,则日志将会发送给/dev/null,这里改成保留日志文件
logfile redis.log
#持久化数据存储,900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改,60秒内有10000个更改
save 900 1 300 10 60 10000
#指定本地数据库文件名,默认值为dump.rdb
dbfilename sgtms.rdb
#注指定工作目录,默认即可
dir .
#设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过auth命令提供密码,默认关闭
requirepass sgtms2017
#程序PID记录方式
pidfile redis.pid

#从节点在复制主节点数据时需要密码
masterauth sgtms2017
3、哨兵节点sentinel.conf配置文件修改
#启用守护进程后,开启该功能后,redis默认后台运行
daemonize yes
#指定Redis监听端口,默认端口为6379,如果指定0端口,表示Redis不监听TCP连接
port 26379
#绑定的一个或多个主机地址,默认为127.0.0.1,未来方便测试成0.0.0.0,生产环境中不能为0.0.0.0
bind 0.0.0.0
#日志记录方式,默认为标准输出,如果配置为redis为守护进程方式运行,而这里又配置为标准输出,则日志将会发送给/dev/null,这里改成保留日志文件
logfile sentinel_26379.log
#程序PID记录方式
pidfile sentinel_26379.pid
#设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过auth命令提供密码,默认关闭
requirepass sgtms2017
#配置master的登陆密码,mymaster是你配置的master名称(可自定义)、主节点的IP地址、端口,以及需要配置(选举人数)
sentinel monitor mymaster 192.169.1.201 6379 2
#配置master的登陆密码,mymaster是你配置的master名称
sentinel auth-pass mymaster sgtms2017
#30秒内master无响应则认为master挂掉
sentinel down-after-milliseconds mymaster 30000
4、哨兵集群启动

Redis服务主从集群启动,具体如下:

#主从集群启动,一主五从均需要启动
[root@localhost bin]# ./redis-server ../redis.conf
#查看Redis服务是否正常启动
[root@localhost bin]# netstat -anpl | grep 6379

#哨兵服务节点启动,三个哨兵服务启动方式一致
[root@localhost bin]# ./redis-sentinel ../sentinel.conf
[root@localhost bin]# netstat -anpl | grep 26379
5、哨兵集群测试

验证哨兵集群是否部署成功,下图展示了,哨兵服务监控到的master节点、slaves数量和sentinel数

6、故障转移测试

将主master节点的redis停掉,在任意哨兵节点可以查到,集群中原主master节点已经有原来的192.168.235.135变更为192.168.235.138,登录任意哨兵节点:

注意登录哨兵节点是需要加端口号的,哨兵节点默认端口号为26379
[root@localhost bin]# ./redis-cli -p 26379
127.0.0.1:26379>auth sgtms2017
OK
127.0.0.1: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.235.138:6379,slaves=5,sentinels=3
127.0.0.1:26379>

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:Redis哨兵集群(笔记)-创新互联
本文路径:http://abwzjs.com/article/cdicjd.html