扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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 | 哨兵节点 |
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元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流