(进阶篇)Redis6.2.0 集群 哨兵模式_搭建_01

文章目录

          • 一、概念架构简述
            • 1. Redis Sentinel简述
            • 2. Redis Sentinel优点
            • 3. Redis Sentinel缺点
          • 二、redis 3节点
            • 2.1. 101节点配置
            • 2.2. 102节点配置
            • 2.3. 103节点配置
          • 三、哨兵搭建实现
            • 3.1. 101节点配置
            • 3.2. 102节点配置
            • 3.3. 103节点配置
            • 3.4. 启动哨兵
            • 3.5. sentinel 监控
            • 3.6. 哨兵验证

一、概念架构简述
1. Redis Sentinel简述

Redis Sentinel是分布式系统中监控Redis主从服务器,并从主服务器下显示自动故障转移的模式。
其中4个特性为监控、提醒、自动故障转移、配置提供者。

2. Redis Sentinel优点
  • 哨兵 是基于主从模式的,所有主从的优点,哨兵模式都有。
  • 主从可以自动切换,系统更健壮,可用性高。
  • Sentinel会不断的检查你的主服务器是否运作正常。当被监控的某一个Redis 出现问题是,Sentinel可以通过API向管理员或者其他应用程序发送通知。
3. Redis Sentinel缺点
  • 主从切换需要时间,丢失数据
  • 还是没有解决主节点写的压力
  • 主节点的写能力,存储能力受到单机的限制;动态扩展困难复杂,对于集群,容量- 达到上限时再现扩容会变得很复杂。
二、redis 3节点

节点分布

服务器端口
192.168.45.1016379
192.168.45.10126379
192.168.45.1026379
192.168.45.10226379
192.168.45.1036379
192.168.45.10326379
2.1. 101节点配置
  • 创建目录
mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
mkdir /usr/local/redis/data/ -p
  • 配置
vim /usr/local/redis/conf/redis-6379.conf
# 放行访问IP的限制 多个用空格隔开
# 0.0.0.0 代表无限制
bind 0.0.0.0# 后台启动开启
daemonize yes# 日志存储目录以及日志文件名
logfile "/usr/local/redis/log/redis.log"# rdb数据文件名
dbfilename "dump.rdb"# aof模式开启
appendonly no# aof数据文件名
appendfilename "appendonly.aof"#rdb数据文件和aof数据文件存储目录
dir "/usr/local/redis/data"# 设置密码
requirepass "123456"# 从节点访问主节点的密码(必须和requirepass 一致)
masterauth "123456"#从节点只读模式
replica-read-only yes#关闭保护模式,可以外部访问
protected-mode no# 端口
port 6379
  • 启动redis
/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis-6379.conf 
2.2. 102节点配置

创建目录

mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
mkdir /usr/local/redis/data/ -p
  • 配置
vim /usr/local/redis/conf/redis-6379.conf
# 放行访问IP的限制 多个用空格隔开
# 0.0.0.0 代表无限制
bind 0.0.0.0# 后台启动开启
daemonize yes# 日志存储目录以及日志文件名
logfile "/usr/local/redis/log/redis.log"# rdb数据文件名
dbfilename "dump.rdb"# aof模式开启
appendonly no# aof数据文件名
appendfilename "appendonly.aof"#rdb数据文件和aof数据文件存储目录
dir "/usr/local/redis/data"# 设置密码
requirepass "123456"# 从节点访问主节点的密码(必须和requirepass 一致)
masterauth "123456"#从节点只读模式
replica-read-only yes#关闭保护模式,可以外部访问
protected-mode no# 端口
port 6379
  • 启动redis
/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis-6379.conf 
2.3. 103节点配置
  • 创建目录
mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
mkdir /usr/local/redis/data/ -p
  • 配置
vim /usr/local/redis/conf/redis-6379.conf
# 放行访问IP的限制 多个用空格隔开
# 0.0.0.0 代表无限制
bind 0.0.0.0# 后台启动开启
daemonize yes# 日志存储目录以及日志文件名
logfile "/usr/local/redis/log/redis.log"# rdb数据文件名
dbfilename "dump.rdb"# aof模式开启
appendonly no# aof数据文件名
appendfilename "appendonly.aof"#rdb数据文件和aof数据文件存储目录
dir "/usr/local/redis/data"# 设置密码
requirepass "123456"# 从节点访问主节点的密码(必须和requirepass 一致)
masterauth "123456"#从节点只读模式
replica-read-only yes#关闭保护模式,可以外部访问
protected-mode no# 端口
port 6379
  • 启动redis
/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis-6379.conf 
三、哨兵搭建实现
3.1. 101节点配置
  • 创建目录
mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
  • 配置
vim /usr/local/redis/conf/sentiel.conf
# 放行所有ip限制
bind 0.0.0.0# 进程端口号
port 26379# 后台启动
daemonize yes# 日志记录文件
logfile "/usr/local/redis/log/sentinel.log"# 进程编号记录文件
pidfile "/var/run/redis-sentinel.pid"# 提示Sentinel 去监视一个名为 mymaster 的主服务器 仲裁 =环境3/2+1
sentinel monitor mymaster 192.168.45.101 6379 2# 访问主节点的密码
sentinel auth-pass mymaster 123456# Sentinel 认为服务器已经断线所需要的毫秒数 默认30秒 这里演示10秒
sentinel down-after-milliseconds mymaster 10000# 若Sentinel  在改配置值内未能完成 failover(故障转移) 操作,则认为本次 failover 失败180秒 3分钟
sentinel failover-timeout mymaster 180000
3.2. 102节点配置
  • 创建目录
mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
  • 配置
vim /usr/local/redis/conf/sentiel.conf
# 放行所有ip限制
bind 0.0.0.0# 进程端口号
port 26379# 后台启动
daemonize yes# 日志记录文件
logfile "/usr/local/redis/log/sentinel.log"# 进程编号记录文件
pidfile "/var/run/redis-sentinel.pid"# 提示Sentinel 去监视一个名为 mymaster 的主服务器 仲裁 =环境3/2+1
sentinel monitor mymaster 192.168.45.101 6379 2# 访问主节点的密码
sentinel auth-pass mymaster 123456# Sentinel 认为服务器已经断线所需要的毫秒数 默认30秒 这里演示10秒
sentinel down-after-milliseconds mymaster 10000# 若Sentinel  在改配置值内未能完成 failover(故障转移) 操作,则认为本次 failover 失败180秒 3分钟
sentinel failover-timeout mymaster 180000
3.3. 103节点配置
  • 创建目录
mkdir /usr/local/redis/conf/ -p
mkdir /usr/local/redis/log/ -p
  • 配置
vim /usr/local/redis/conf/sentiel.conf
# 放行所有ip限制
bind 0.0.0.0# 进程端口号
port 26379# 后台启动
daemonize yes# 日志记录文件
logfile "/usr/local/redis/log/sentinel.log"# 进程编号记录文件
pidfile "/var/run/redis-sentinel.pid"# 提示Sentinel 去监视一个名为 mymaster 的主服务器 仲裁 =环境3/2+1
sentinel monitor mymaster 192.168.45.101 6379 2# 访问主节点的密码
sentinel auth-pass mymaster 123456# Sentinel 认为服务器已经断线所需要的毫秒数 默认30秒 这里演示10秒
sentinel down-after-milliseconds mymaster 10000# 若Sentinel  在改配置值内未能完成 failover(故障转移) 操作,则认为本次 failover 失败180秒 3分钟
sentinel failover-timeout mymaster 180000
3.4. 启动哨兵

依次启动3个节点 sentinel

/app/redis-6.2.6/src/redis-sentinel /usr/local/redis/conf/sentinel.conf
3.5. sentinel 监控
  • sentinel _01
    在这里插入图片描述
[root@VM-24-10-centos ~]# tail -f /usr/local/redis/log/sentinel.log
22858:X 23 Oct 2022 14:54:00.271 # Configuration loaded
22858:X 23 Oct 2022 14:54:00.272 * monotonic clock: POSIX clock_gettime
22858:X 23 Oct 2022 14:54:00.272 * Running mode=sentinel, port=26380.
22858:X 23 Oct 2022 14:54:00.273 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/coris set to the lower value of 128.
22858:X 23 Oct 2022 14:54:00.283 # Sentinel ID is 24381e0b70d72fdbb5489ee58a5db7e521dd7a54
22858:X 23 Oct 2022 14:54:00.283 # +monitor master mymaster 192.168.45.80 6380 quorum 2
22858:X 23 Oct 2022 14:54:00.286 * +slave slave 192.168.45.102:6379 192.168.45.102 6379 @ mymaster 192.168.45.101 6379
22858:X 23 Oct 2022 14:54:00.298 * +slave slave 192.168.45.103:6379 192.168.45.103 6379 @ mymaster 192.168.45.101 6379
22858:X 23 Oct 2022 14:54:02.286 * +sentinel sentinel acd408cb9683b06e5786ecded9af3cb77b3bc33c 10.0.24.10 26379 @ mymas26.101 6379
22858:X 23 Oct 2022 14:54:03.994 * +sentinel sentinel 1da437262d0fd32e484a63d9b0e4155db857923b 10.0.24.10 26379 @ mymas26.101 6379
  • sentinel _02
    在这里插入图片描述
[root@VM-24-10-centos ~]# tail -f /usr/local/redis/log/sentinel_02.log
22864:X 23 Oct 2022 14:54:00.277 # Configuration loaded
22864:X 23 Oct 2022 14:54:00.278 * monotonic clock: POSIX clock_gettime
22864:X 23 Oct 2022 14:54:00.279 * Running mode=sentinel, port=26381.
22864:X 23 Oct 2022 14:54:00.279 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/coris set to the lower value of 128.
22864:X 23 Oct 2022 14:54:00.289 # Sentinel ID is acd408cb9683b06e5786ecded9af3cb77b3bc33c
22864:X 23 Oct 2022 14:54:00.289 # +monitor master mymaster 192.168.45.80 6380 quorum 2
22864:X 23 Oct 2022 14:54:00.292 * +slave slave 192.168.45.80:6381 192.168.45.80 6381 @ mymaster 192.168.45.80 6380
22864:X 23 Oct 2022 14:54:00.300 * +slave slave 192.168.45.80:6382 192.168.45.80 6382 @ mymaster 192.168.45.80 6380
22864:X 23 Oct 2022 14:54:02.309 * +sentinel sentinel 24381e0b70d72fdbb5489ee58a5db7e521dd7a54 10.0.24.10 26380 @ mymas26.80 6380
22864:X 23 Oct 2022 14:54:03.994 * +sentinel sentinel 1da437262d0fd32e484a63d9b0e4155db857923b 10.0.24.10 26382 @ mymas26.80 6380
  • sentinel _03
    在这里插入图片描述
[root@VM-24-10-centos src]# tail -f /usr/local/redis/log/sentinel_03.log
22937:X 23 Oct 2022 14:54:01.929 # Configuration loaded
22937:X 23 Oct 2022 14:54:01.929 * monotonic clock: POSIX clock_gettime
22937:X 23 Oct 2022 14:54:01.930 * Running mode=sentinel, port=26382.
22937:X 23 Oct 2022 14:54:01.930 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
22937:X 23 Oct 2022 14:54:01.940 # Sentinel ID is 1da437262d0fd32e484a63d9b0e4155db857923b
22937:X 23 Oct 2022 14:54:01.940 # +monitor master mymaster 192.168.45.80 6380 quorum 2
22937:X 23 Oct 2022 14:54:01.942 * +slave slave 192.168.45.80:6381 192.168.45.80 6381 @ mymaster 192.168.45.80 6380
22937:X 23 Oct 2022 14:54:01.950 * +slave slave 192.168.45.80:6382 192.168.45.80 6382 @ mymaster 192.168.45.80 6380
22937:X 23 Oct 2022 14:54:02.286 * +sentinel sentinel acd408cb9683b06e5786ecded9af3cb77b3bc33c 10.0.24.10 26381 @ mymaster 192.168.45.80 6380
22937:X 23 Oct 2022 14:54:02.309 * +sentinel sentinel 24381e0b70d72fdbb5489ee58a5db7e521dd7a54 10.0.24.10 26380 @ mymaster 192.168.45.80 6380
3.6. 哨兵验证
  • 登录101节点
 /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456
info replication
[root@localhost redis01]# /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.45.76,port=6381,state=online,offset=2889706,lag=1
slave1:ip=192.168.45.76,port=6382,state=online,offset=2889706,lag=1
master_failover_state:no-failover
master_replid:0ee70287bead3e408a25ba421d918d7560f8fee3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2889972
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1841397
repl_backlog_histlen:1048576
127.0.0.1:6380> 
  • 登录102节点
 /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456
info replication
[root@localhost redis01]# /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:192.168.45.76
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_read_repl_offset:2925735
slave_repl_offset:2925735
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:0ee70287bead3e408a25ba421d918d7560f8fee3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2925735
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1877160
repl_backlog_histlen:1048576
127.0.0.1:6381> exit
  • 登录103节点
 /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456
info replication
[root@localhost redis01]# /app/redis-6.2.6/src/redis-cli -p 6379 -a 123456 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6382> info replication
# Replication
role:slave
master_host:192.168.45.76
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_read_repl_offset:2971130
slave_repl_offset:2971130
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:0ee70287bead3e408a25ba421d918d7560f8fee3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2971130
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1922555
repl_backlog_histlen:1048576
127.0.0.1:6382> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器软件大扫盲!

来源 | 沉默王二责编 | Carol头图 | CSDN下载自视觉中国先说一句哈,自从在 B 站开始刷视频后,我就觉得要学的内容实在是太多了。这篇“服务器软件大扫盲”就是我看了羊哥的一期视频后有感而发的,比如说 Web 服务器、HTTP 服务器、应用服务器这…

Flutter浪潮下的音视频研发探索

导读:本文来自 LiveVideoStack 线上分享第三季,第十期阿里巴巴闲鱼事业部无线开发专家陈炉军带来的分享内容,针对闲鱼APP在当下流行的跨平台框架Flutter的大规模实践,介绍其在音视频领域碰到的一些困难以及解决方案。 大家好&…

(进阶篇)Redis6.2.0 集群 哨兵模式_哨兵工作原理_02

文章目录1. 主从复制哨兵架构图2. 定时任务3. 主观下线4. 客观下线5. 仲裁6. 哨兵工作原理1. 主从复制哨兵架构图 2. 定时任务 Sentinel内部有3个定时任务分别是: 每1秒每个Sentinel对其他Sentienl和Redis节点执行 PING 操作(监控)每2秒每个Sentinel通过Master节点…

10年+,阿里沉淀出怎样的搜索引擎?

阿里妹导读:搜索引擎是阿里的10年沉淀,具有很高的技术/业务/商业价值。1688很多场景都借助了搜索中台的能力,基于此,以1688主搜为例介绍搜索全链路知识点,希望对你有所借鉴,有所启发。 一、整体架构 搜索…

年薪15W的程序员因为掌握这个技能,薪资翻倍!

在这个IT系统动辄就是上亿流量的时代,java作为大数据时代应用最广泛的语言,诞生了一批又一批的技术。一些独角兽公司以及腾讯、阿里、百度、网易等知名大厂对java人才的需求量连年升级,优秀程序员能轻松达到30w的水平,但写此同时&…

语雀携手Teambition,玩转项目协作与知识管理

在数字化转型的大浪潮中,大量企业都有项目协作与知识管理诉求。Teambition 是一款优秀的项目协作产品,深受众多企业的青睐。语雀则是来自阿里巴巴的一款新品,是知识管理领域里冉冉升起的新星。今年夏天,语雀携手Teambition&#x…

支付宝小程序“开闸放粮”,亿级流量扶持中小商家!

街边小店也有机会登上支付宝首页推荐位了! 9月17日消息,在支付宝开放日活动中,支付宝宣布向小程序商家开放包括主搜热搜榜、首页腰封、首页惠支付频道、首页生活服务频道、花呗频道、会员频道等六大中心化入口,商家通过引导用户扫…

idea 编译Java heap space 内存溢出

解决方案 根据自身的实际情况设置参数大小,我调整到4096就好使了

避坑!使用 Kubernetes 最易犯的 10 个错误

Kubernetes 作为大规模企业级应用容器编排的首推工具,其为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,本文作者 Marek Bartik 深入分享了 K8s 的避坑宝典,相信会对开发者们大有裨益。作者 | Marek Bartik&…

当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?

本文主要介绍阿里巴巴在大规模生产环境中落地 Kubernetes 的过程中,在集群规模上遇到的典型问题以及对应的解决方案,内容包含对 etcd、kube-apiserver、kube-controller 的若干性能及稳定性增强,这些关键的增强是阿里巴巴内部上万节点的 Kube…

来了!云栖大会都能看到什么?

盼望着 盼望着 一年一度科技盛宴2019杭州云栖大会 来了! 欢迎你 来自远方的开发者们 今天小云为你偷偷潜入会场 带来一大波“谍照” 一起看云栖 在这儿,感受科技带来的巨大惊喜 平头哥放大招! 人工智能整体性突破! 更有三位男神…

美国 AI 博士一针见血:Python 这样学最容易成为高手!

我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式&#xff0…

【物联网开发实战】- 设备上云方案详解?

【物联网开发实战】- 如何让设备上云? 物联网开发过程中遇到的第一个棘手问题就是:如何让设备连接上云? 我们以智能洗衣机为例,至少包含:温度/水位等传感器,主控MCU(Microcontroller Unit&…

bash: mysqldump: command not found

文章目录一、问题分析定位二、解决方案2.1. 解决方案12.2. 解决方案22.3. 解决方案3一、问题分析定位 由于mysqldump在mysql/bin目录下面,直接执行此命令,环境变量中没有,找不到的情况 二、解决方案 2.1. 解决方案1 # 进入到mysql的bin目…

深入解析 Kubebuilder:让编写 CRD 变得更简单

导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubernetes 高级玩家的必备技能,本文将介绍 CRD 和 Controller 的概念,并对 CRD 编写框架 Kubebuilder 进行深入…

“编程能力差,90%输在了选择上!”CTO:多数程序员都是瞎努力!

在编程的世界里,编程语言就像橱窗里的衣服,琳琅满目。 编程语言实在是太多啦,如C、C、Java、Python、Objective-C和PHP等。这让不少的小白程序员产生选择困难症,到底应该学哪一门编程语言呢?大部分人在面对“你为什么要学这个编…

sqlite事务模型、性能优化tips、常见误区

0,前言 本文主要介绍sqlite的事务模型,以及基于事务模型的一些性能优化tips,包括事务封装、WAL读写分离、分库分表、page size优化等。并基于手淘sqlite的使用现状总结了部分常见问题及误区,主要集中在多线程的设置、多线程下性能…

企业实战_07_MyCat 搭建Mysql 一主一从复制环境

接上一篇:企业实战_06_MyCat 常用的分片算法 https://gblfy.blog.csdn.net/article/details/118770261 文章目录一、 环境准备1. 主从复制搭建流程2. 服务器分布二、 MySql 主机节点操作如下2.1. 创建数据库2.2. 初始化表结构及数据2.3. 验证2.4. 数据备份2.5. 脚本…

实操来了!一文告诉你如何用 Streamlit 和 Heroku 开发 Web

作者 | AJ Gordon责编 | Carol头图 | CSDN 付费下载于视觉中国出品 | CSDN云计算(ID:CSDNcloud)本文主要介绍如何利用Python的Streamlit库和Heroku云平台来做一个交互式数据分析Web应用。开发环境如下:Windows10系统Anaconda3&am…

阿里第一颗芯片问世,平头哥发布最强AI芯片含光800

阿里巴巴第一颗自研芯片正式问世。9月25日的杭州云栖大会上,达摩院院长张建锋现场展示了这款全球最强的AI芯片——含光800。在业界标准的ResNet-50测试中,含光800推理性能达到78563 IPS,比目前业界最好的AI芯片性能高4倍;能效比50…