Redis的sentinel(哨兵)部署
1.准备文件
1.解压redis-4.0.1.tar.gz的redis文件
2.新建目录 redis-cluster以及子目录 master-6379 slave-7000 slave-7001
3.复制redis目录下的redis.conf配置文件到三个目录下各一份
redis_6379.conf redis_7000.conf redis_7001.conf
2.修改配置文件:1master +2slave + 3sentinel
4.1 maste和slave的配置
1)redis_6379.conf
bind 127.0.0.1 这里也可以不配置
port 6379
pidfile /var/run/redis_6379.pid
maxmemory 1024*1024*10
2)redis_7000.conf
bind 127.0.0.1 这里也可以不配置
port 7000
pidfile /var/run/redis_7000.pid
maxmemory 1024*1024*10
3)redis_7001.conf
bind 127.0.0.1 这里也可以不配置
port 7001
pidfile /var/run/redis_7001.pid
maxmemory 1024*1024*10
4.2 sentinel的配置:
复制redis目录下的sentinel.conf配置文件到master-6379 slave-7000 slave-7001三个目录下各一份
1)sentinel_26379.conf
port 26379
sentinel myid 94a9064543f19c638d6e9a9ee2b4c06150743216 这一行如果一直一定要删掉,这个会动生成
# sentinel parallel-syncs <master-name> <numslaves>
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel parallel-syncs mymaster 1
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 3000
2)sentinel_27000conf
port 27000
sentinel myid 94a9064543f19c638d6e9a9ee2b4c06150743216 这一行如果一直一定要删掉,这个会动生成
# sentinel parallel-syncs <master-name> <numslaves>
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel parallel-syncs mymaster 1
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 3000
3)sentinel_27001conf
port 27001
sentinel myid 94a9064543f19c638d6e9a9ee2b4c06150743216 这一行如果一直一定要删掉,这个会动生成
# sentinel parallel-syncs <master-name> <numslaves>
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel parallel-syncs mymaster 1
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 3000
依次启动redis服务
启动命令:./redis-4.0.1/src/reids-server redis-cluster/redis-master/redis_6379.conf 其他的依次类推启动
查看服务器结果:
root@db:~/mysoft/soft# ./redis-4.0.1/src/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=7000,state=online,offset=914454,lag=0
slave1:ip=127.0.0.1,port=7001,state=online,offset=914188,lag=1
master_replid:631cc91ab9e66d1555f7ed526d50219663b6bc19
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:914454
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:537727
查看sentinel
root@hecs-x-medium-2-linux-20200620124443:~/mysoft/soft# ./redis-4.0.1/src/redis-cli -h 127.0.0.1 -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
slaves=2,sentinels=3 才表示配置成功,否则无法进行主从切换,因为前面配置了 sentinel monitor <master-name> <ip> <redis-port> <quorum> quorum=2,表示有两个sentinel认为主节点宕机就下掉主节点,重新选举进行主从切换
注意:
1.都监听mater,只要改下端口号就好,后面sentinel自动同步监听其他节点以及互相监听
2.配置文件sentinel.conf中如果有myid一定要删掉,不然会导致主从切换失败
查看sentinel启动后,配置文件的末尾处的变化:每个sentinel的配置文件末尾都会追加相同的配置
# Generated by CONFIG REWRITE
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 127.0.0.1 7000
sentinel known-slave mymaster 127.0.0.1 7001
sentinel known-sentinel mymaster 127.0.0.1 27001 efd086631857c7295cfc50a37f5c0796bc3b7549
sentinel known-sentinel mymaster 127.0.0.1 27000 f0b7aeca04b7b27a74c87c7021f8a72052dc8c41
sentinel current-epoch 0
3.查看sentinel控制台日志:
26379 5445:X 12 Jan 23:33:01.599 # Sentinel ID is 674501a329a678b914a3bb0483ba223ede535c94
5445:X 12 Jan 23:33:01.599 # +monitor master mymaster 127.0.0.1 6379 quorum 2
5445:X 12 Jan 23:33:17.057 * +sentinel-invalid-addr sentinel f0b7aeca04b7b27a74c87c7021f8a72052dc8c41 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:17.057 * +sentinel sentinel 38dfc2e01c118fd897378b5c121912fc266923a8 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:25.580 * +sentinel-invalid-addr sentinel efd086631857c7295cfc50a37f5c0796bc3b7549 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:25.580 * +sentinel sentinel d315173e7739c37759806c5b243752b755ca7c91 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
27000 5451:X 12 Jan 23:33:15.031 # Sentinel ID is 38dfc2e01c118fd897378b5c121912fc266923a8
5451:X 12 Jan 23:33:15.031 # +monitor master mymaster 127.0.0.1 6379 quorum 2
5451:X 12 Jan 23:33:15.032 * +sentinel-invalid-addr sentinel 94a9064543f19c638d6e9a9ee2b4c06150743216 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
5451:X 12 Jan 23:33:15.032 * +sentinel sentinel 674501a329a678b914a3bb0483ba223ede535c94 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
5451:X 12 Jan 23:33:25.503 * +sentinel-invalid-addr sentinel efd086631857c7295cfc50a37f5c0796bc3b7549 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5451:X 12 Jan 23:33:25.503 * +sentinel sentinel d315173e7739c37759806c5b243752b755ca7c91 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5451:X 12 Jan 23:33:45.043 # +sdown sentinel 94a9064543f19c638d6e9a9ee2b4c06150743216 127.0.0.1 0 @ mymaster 127.0.0.1 6379
5451:X 12 Jan 23:33:54.513 # +sdown sentinel efd086631857c7295cfc50a37f5c0796bc3b7549 127.0.0.1 0 @ mymaster 127.0.0.1 6379
27001
5455:X 12 Jan 23:33:23.440 # Sentinel ID is d315173e7739c37759806c5b243752b755ca7c91
5455:X 12 Jan 23:33:23.441 # +monitor master mymaster 127.0.0.1 6379 quorum 2
5455:X 12 Jan 23:33:23.461 * +sentinel-invalid-addr sentinel f0b7aeca04b7b27a74c87c7021f8a72052dc8c41 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5455:X 12 Jan 23:33:23.461 * +sentinel sentinel 38dfc2e01c118fd897378b5c121912fc266923a8 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5455:X 12 Jan 23:33:24.264 * +sentinel-invalid-addr sentinel 94a9064543f19c638d6e9a9ee2b4c06150743216 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
5455:X 12 Jan 23:33:24.264 * +sentinel sentinel 674501a329a678b914a3bb0483ba223ede535c94 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
5455:X 12 Jan 23:33:53.462 # +sdown sentinel f0b7aeca04b7b27a74c87c7021f8a72052dc8c41 127.0.0.1 0 @ mymaster 127.0.0.1 6379
5455:X 12 Jan 23:33:53.462 # +sdown sentinel 94a9064543f19c638d6e9a9ee2b4c06150743216 127.0.0.1 0 @ mymaster 127.0.0.1 6379
上面打印的日志显示sentinel处理会自动监听master和slave,还会互相监听
4.进行主从切换看日志
26379 5445:X 12 Jan 23:33:01.599 # Sentinel ID is 674501a329a678b914a3bb0483ba223ede535c94
5445:X 12 Jan 23:33:01.599 # +monitor master mymaster 127.0.0.1 6379 quorum 2
5445:X 12 Jan 23:33:17.057 * +sentinel-invalid-addr sentinel f0b7aeca04b7b27a74c87c7021f8a72052dc8c41 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:17.057 * +sentinel sentinel 38dfc2e01c118fd897378b5c121912fc266923a8 127.0.0.1 27000 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:25.580 * +sentinel-invalid-addr sentinel efd086631857c7295cfc50a37f5c0796bc3b7549 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:25.580 * +sentinel sentinel d315173e7739c37759806c5b243752b755ca7c91 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:47.078 # +sdown sentinel f0b7aeca04b7b27a74c87c7021f8a72052dc8c41 127.0.0.1 0 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:33:55.308 # +sdown sentinel efd086631857c7295cfc50a37f5c0796bc3b7549 127.0.0.1 0 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:37:30.061 # +sdown master mymaster 127.0.0.1 6379
5445:X 12 Jan 23:37:30.188 # +new-epoch 1
5445:X 12 Jan 23:37:30.191 # +vote-for-leader d315173e7739c37759806c5b243752b755ca7c91 1
5445:X 12 Jan 23:37:31.171 # +odown master mymaster 127.0.0.1 6379 #quorum 3/2
5445:X 12 Jan 23:37:31.171 # Next failover delay: I will not start a failover before Tue Jan 12 23:37:36 2021
5445:X 12 Jan 23:37:31.316 # +config-update-from sentinel d315173e7739c37759806c5b243752b755ca7c91 127.0.0.1 27001 @ mymaster 127.0.0.1 6379
5445:X 12 Jan 23:37:31.316 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 7000
5445:X 12 Jan 23:37:31.317 * +slave slave 127.0.0.1:7001 127.0.0.1 7001 @ mymaster 127.0.0.1 7000
5445:X 12 Jan 23:37:31.317 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 7000
5445:X 12 Jan 23:38:01.373 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 7000
上面显示切换 7000端口的机器为master
slave-7000机器的日志
5302:M 12 Jan 23:37:30.400 # Setting secondary replication ID to 1be1283f0bfec0e63832668a5a0fe738359dd550, valid up to offset: 593645. New replication ID is 11c02d28f2f002abc551a2abfaa58a33863977cf
5302:M 12 Jan 23:37:30.400 * Discarding previously cached master state.
5302:M 12 Jan 23:37:30.400 * MASTER MODE enabled (user request from 'id=14 addr=127.0.0.1:54446 fd=12 name=sentinel-d315173e-cmd age=247 idle=0 flags=x db=0 sub=0 psub=0 multi=3 qbuf=0 qbuf-free=32768
obl=36 oll=0 omem=0 events=r cmd=exec')
5302:M 12 Jan 23:37:30.401 # CONFIG REWRITE executed with success.
5302:M 12 Jan 23:37:31.928 * Slave 127.0.0.1:7001 asks for synchronization
5302:M 12 Jan 23:37:31.928 * Partial resynchronization request from 127.0.0.1:7001 accepted. Sending 422 bytes of backlog starting from offset 593645
r
Redis的sentinel(哨兵)部署的更多相关文章
- Redis笔记-Sentinel哨兵模式
Redis以主从的模式搭建集群后,如果主节点Master挂掉,虽然可以实现将备用节点Slave切换成主节点,但是Redis本身并没有自动监控机制,需要借助Sentinel哨兵模式,实现监控并实现自动切 ...
- SpringBoot进阶教程(三十)整合Redis之Sentinel哨兵模式
Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而 ...
- 【Redis】Sentinel 哨兵模式
Sentinel(哨兵模式) 目录 Sentinel(哨兵模式) 哨兵模式的三个定时任务 Sentinel(哨兵)与Sentinel .主服务器.从服务器之间的连接 检测下线状态 选择领头 Senti ...
- redis主从配置+sentinel哨兵
redis主从配置+sentinel哨兵 1:编译环境准备 1.1环境确认 Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.所以在搭建Redis服务器时需要C语言的编 ...
- Redis学习笔记(十四)Sentinel(哨兵)(上)
最近谈到Redis就会听到哨兵模式,工作期间同事也分享过关于哨兵模式的知识,但由于工作忙(给自己找个借口)没有没认真看,现在恶补下,老样子还是分上篇应用,下篇看实现过程,下面我们来看下哨兵到底是啥? ...
- Redis学习笔记(十五)Sentinel(哨兵)(中)
上一篇 我们模拟了单机器下哨兵模式的搭建,那么接下来我们看下哨兵模式的实现与工作. 为什么又分成两篇呢?因为篇幅太长(偷懒),再一个这篇主要说的是Sentinel的初始化以及信息交换,下一篇着重说下状 ...
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...
- (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...
- Redis哨兵模式(sentinel)部署记录(主从复制、读写分离、主从切换)
部署环境: CentOS7.5 192.168.94.11 (master) 192.168.94.22 (slave0) 192.168.94.33 (slave1) 192.168.94.44 ...
随机推荐
- day105:Mofang:设置页面初始化&更新头像/上传头像&设置页面显示用户基本信息
目录 1.设置页面初始化 2.更新头像 1.点击头像进入更新头像界面 2.更新头像页面初始化 3.更新头像页面CSS样式 4.头像上传来源选择:相册/相机 5.调用api提供的本地接口从相册/相机提取 ...
- jQuery插件的2种类型
1.封装方法插件 封装方法插件在本质上来说,是一个对象级别的插件,这类插件首先通过jQuery选择器获取对象,并为对象添加方法,然后,将方法进行打包,封闭成一个插件,这种类型的插件编写简单,极易调用 ...
- 七、git学习之——使用GitHub、自定义Git、
原文来自 一.使用GitHub 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人 ...
- block、inline、inline-block区别以及标签嵌套
1.block 将元素转为块元素,块元素占一行,可以设置宽和高. 2.inline 将元素转为行内元素,占一行,不可以设置宽和高. 3.inline-block 将元素设置为行内块元素,这时元素既可以 ...
- rman恢复实践
1) Loss of system DATAFILE 2) Loss of non-system DATAFILE 3) Loss of a DATAFILE without Backup 4) Lo ...
- Navicat Primium连接数据库报ORA-28547错误
这个问题主要是Navicat Primium与orecal中的oci.dll版本不一致造成的,无论是本地数据库或者网络数据库. 解决方法:在数据库orecal安装目录中搜索oci.dll文件,找到后将 ...
- QQ音乐PB级ClickHouse实时数据平台架构演进之路
导语 | OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过Q ...
- Web服务器-并发服务器-多进程(3.4.1)
@ 目录 1.优化分析 2.代码 3. 关于作者 1.优化分析 在单进程的时候,相当于 是来一个客户,派一个人去服务一下 效率低,现在使用多进程来服务 假设场景 100个人同时访问页面 单进程:一次处 ...
- 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁
文章目录 怎么跟你说 Service的出现,就是 解决ip不固定的问题 ,怎么解决呢 ? 听小刘慢慢道来 当Pod宕机后重新生成时,其IP等状态信息可能会变动,Service会根据Pod的Label对 ...
- Sharding-JDBC使用jasypt3.0及以上版本加密数据库连接密码
本文中介绍的是基于Sharding-JDBC 4.0和jasypt 3.0及其以上版本对数据库连接密码进行加密操作 引入依赖 项目的pom.xml中引入maven依赖 <dependency&g ...