百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

「Redis实战」Windows下搭建Redis集群就是这么简单!

mhr18 2024-11-13 11:11 23 浏览 0 评论

Redis集群配置

Redis主从复制(一主两仆)

  1. 复制2份conf配置文件
  2. 在复制的配置文件中分别修改端口号为6380、6381(注意:该端口号可以随意修改,只要不使用已被占用的端口号即可),并分别命名为redis.windows6380.conf、redis.windows6381.conf
  3. 进入Redis目录,启动主Redis,命令如下
 redis-server.exe redis.windows.conf
  1. 分别启动从Redis,命令如下
 redis-server.exe redis.windows6380.conf
 
 redis-server.exe redis.windows6381.conf
  1. 分别启动3个Redis客户端
 redis-cli.exe -p 6379
 redis-cli.exe -p 6380
 redis-cli.exe -p 6381
  1. 在主Redis中保存数据,并在从Redis中查看

主从复制原理

  1. slave服务器连接到master服务器,便开始进行数据同步,发送psync命令。
  2. master服务器收到psync命令之后,开始执行bgsave命令生成RDB快照文件并使用缓存区记录此后执行的所有写命令。
  3. master服务器bgsave执行完之后,就会向所有Slava服务器发送快照文件,并在发送期间继续在缓冲区内记录被执行的写命令。
  4. slave服务器收到RDB快照文件后,会将接收到的数据写入磁盘,然后清空所有旧数据,在从本地磁盘载入收到的快照到内存中,同时基于旧的数据版本对外提供服务。
  5. master服务器发送完RDB快照文件之后,便开始向slave服务器发送缓冲区中的写命令。
  6. slave服务器完成对快照的载入,开始接受命令请求,并执行来自主服务器缓冲区的写命令;
  7. 如果slave node开启了AOF,那么会立即执行BGREWRITEAOF,重写AOF。

Redis哨兵模式

同样复制一份配置文件,并修改端口号为9527,文件命名格式同上(文件格式不固定,能区分即可),同时在配置文件中加入如下配置:

 sentinel monitor mymaster 127.0.0.1 6379 1
 sentinel down-after-milliseconds mymaster 60000
 sentinel failover-timeout mymaster 180000
 sentinel parallel-syncs mymaster 1

第一行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 1 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)

不过要注意, 无论你设置要多少个 Sentinel 同意才能判断一个服务器失效, 一个 Sentinel 都需要获得系统中多数(majority) Sentinel 的支持, 才能发起一次自动故障迁移

换句话说, 在只有少数(minority) Sentinel 进程正常运作的情况下, Sentinel 是不能执行自动故障迁移的。

其他选项格式如下:

 sentinel <选项的名字> <主服务器的名字> <选项的值>
  • down-after-milliseconds:选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。如果服务器在给定的毫秒数之内, 没有返回 Sentinel PING发送的命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线,不过只有一个 Sentinel 将服务器标记为主观下线并不一定会引起服务器的自动故障迁移: 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(objectively down, 简称 ODOWN ), 这时自动故障迁移才会执行。
  • parallel-syncs:选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。

常用配置清单

 // 指定哨兵监控的 master 节点配置
 // mymaster redis 节点名称,1 表示判断 redis 节点失效至少需要 1 个 Sentinel 节点同意
 sentinel monitor mymaster 192.168.137.40 6379 1;
 // redis 节点存在密码时验证密码
 sentinel auth-pass mymaster 123456;
 // 哨兵监控的节点多久不能正常返回消息后置为主观下线状态
 sentinel down-after-milliseconds mymaster 5000;
 // 故障转移(主备切换)最大时长,超过该时长未完成转移则认为本次转移失败
 sentinel failover-timeout mymaster 18000;
 // 当发生故障转移时,最多同时有多少个 slave 节点同时从新 master 节点同步数据
 // 值越小故障转移时间越长,值越大同时有更少的 slave 节点可以执行 get 操作
 sentinel parallel-syncs <master-name> <numslaves>;
 // 配置当出现某种状态后出发脚本,例如异常通知管理员等等。脚本返回1将重复执行,大于1将不再执行
 // 当 sentinel 监控节点有任何警告级别的事件发生时调用该脚本,常用来发邮件
 sentinel notification-script <master-name> <script-path>;
 // 当 sentinel 监控节点发生故障转移时调用该脚本,用来通信新的主备机器
 sentinel client-reconfig-script <master-name> <script-path>;

主观下线和客观下线

  • 主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。
  • 客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。 (一个 Sentinel 可以通过向另一个 Sentinel 发送 SENTINEL is-master-down-by-addr 命令来询问对方是否认为给定的服务器已下线。)

启动哨兵

 redis-server.exe redis.windows9527.conf --sentinel

相关推荐

Dubai&#39;s AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East&#39;s Silicon Gateway

AI-generatedimageAsianFin--Dubaiisrapidlytransformingitselffromadesertoilhubintoaglob...

OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs

TMTPOST--OpenAIisescalatingthepricewarinlargelanguagemodel(LLM)whileseekingpartnershi...

黄仁勋说AI Agent才是未来!但究竟有些啥影响?

,抓住风口(iOS用户请用电脑端打开小程序)本期要点:详解2025年大热点你好,我是王煜全,这里是王煜全要闻评论。最近,有个词被各个科技大佬反复提及——AIAgent,智能体。黄仁勋在CES展的发布...

商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署

1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于第5部分2、mini商城项目详细文档及代码见CSDN:https://blog.csdn.net/Eclipse_...

Python+Appium环境搭建与自动化教程

以下是保姆级教程,手把手教你搭建Python+Appium环境并实现简单的APP自动化测试:一、环境搭建(Windows系统)1.安装Python访问Python官网下载最新版(建议...

零配置入门:用VSCode写Java代码的正确姿

一、环境准备:安装JDK,让电脑“听懂”Java目标:安装Java开发工具包(JDK),配置环境变量下载JDKJava程序需要JDK(JavaDevelopmentKit)才能运行和编译。以下是两...

Mycat的搭建以及配置与启动(mycat2)

1、首先开启服务器相关端口firewall-cmd--permanent--add-port=9066/tcpfirewall-cmd--permanent--add-port=80...

kubernetes 部署mysql应用(k8s mysql部署)

这边仅用于测试环境,一般生产环境mysql不建议使用容器部署。这里假设安装mysql版本为mysql8.0.33一、创建MySQL配置(ConfigMap)#mysql-config.yaml...

Spring Data Jpa 介绍和详细入门案例搭建

1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...

量子点格棋上线!“天衍”邀您执子入局

你是否能在策略上战胜量子智能?这不仅是一场博弈更是一次量子智力的较量——量子点格棋正式上线!试试你能否赢下这场量子智局!游戏玩法详解一笔一画间的策略博弈游戏目标:封闭格子、争夺领地点格棋的基本目标是利...

美国将与阿联酋合作建立海外最大的人工智能数据中心

当地时间5月15日,美国白宫宣布与阿联酋合作建立人工智能数据中心园区,据称这是美国以外最大的人工智能园区。阿布扎比政府支持的阿联酋公司G42及多家美国公司将在阿布扎比合作建造容量为5GW的数据中心,占...

盘后股价大涨近8%!甲骨文的业绩及指引超预期?

近期,美股的AI概念股迎来了一波上升行情,微软(MSFT.US)频创新高,英伟达(NVDA.US)、台积电(TSM.US)、博通(AVGO.US)、甲骨文(ORCL.US)等多股亦出现显著上涨。而从基...

甲骨文预计新财年云基础设施营收将涨超70%,盘后一度涨8% | 财报见闻

甲骨文(Oracle)周三盘后公布财报显示,该公司第四财季业绩超预期,虽然云基建略微逊于预期,但管理层预计2026财年云基础设施营收预计将增长超过70%,同时资本支出继上年猛增三倍后,新财年将继续增至...

Springboot数据访问(整合MongoDB)

SpringBoot整合MongoDB基本概念MongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和...

Linux环境下,Jmeter压力测试的搭建及报错解决方法

概述  Jmeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的。到目前为止,它的最新版本是5.3,其测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JM...

取消回复欢迎 发表评论: