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

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

mhr18 2024-11-13 11:11 17 浏览 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

相关推荐

Team IDE 集成管理工具

Team·IDE工具简介TeamIDE工具集成SSH、FTP、MySql、Redis、Zookeeper、Kafka、Elasticsearch等管理工具Team·IDE功能模块目录结...

MySQL大数据表处理策略,原来一直都用错了……

场景当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题。数据的插入,查询时长较长后续业务需求的扩展,在表中新增字段,影响较大表中的数据并不是所有的都为有效数...

Java程序员你真的甘心只做增删改查吗

各位志同道合的朋友们大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题最近...

Java后端开发除了增删改查还有什么?

后端的追求:接口稳定、架构合理、业务逻辑清晰、模块拆分合理、支持高并发等。软件本身归根到底都是由算法+数据结构构成的,进一步细化之后,其实就是通过一系列的增删改查操作,构成算法,对数据结构进行操作,赋...

基于shiro实现session持久化和分布式共享

前言本文写下session持久化和分布式共享基于shiro框架对session的管理机制来实现必要性一直处于登陆状态:你登陆微信不可能三天两头就让你重新登陆吧?而是一直处于登陆状态除非主动退出...

为啥工作那么多年,你还是只会增删改查?

你以为没有这样的感觉,工作中领导和同事都非常认可你的能力,但是你想更进一步,却不被认可。想出去看看,跳槽面试,却也是屡屡碰壁。面试的过程中,面试官问技术方案,明明心里很清楚,或者说印象还行,可就是说不...

Java程序员除了做增删改查还能干嘛?

就以Java后端开发为例,说说不同级别程序员干的事情。1初级开发,大概是有3年Java开发经验。22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能...

Java面试题及答案总结(2025版持续更新)

大家好,我是Java面试分享面对Java后端岗位的激烈竞争,掌握系统化的知识体系至关重要。本文整理了覆盖主流技术栈的高频面试题,助你高效备战,内容包含:Java基础、并发编程、Spring生态、数据库...

微服务架构之API网关——在微服务项目中的技术框架和用法实践

API网关技术实战在介绍了API网关的相关理论之后,大家可以了解到API网关的作用和优缺点,接下来将为大家介绍API网关在微服务项目中的技术框架和用法实践。Zuul网关其实API网关并不是很难的技术,...

带小白黑客入门,你也可以跟我们一起成为黑客大牛

小编这几天一直在做关于ssrf的实验,这篇文章可以带纯小白黑客入门。靶机ip地址:192.168.2.138查看靶机运行的redis服务。攻击机为ip192.168.2.112.用客户端redis-c...

Python最常见的170道面试题全解析答案(二)

60.请写一个Python逻辑,计算一个文件中的大写字母数量答:withopen(‘A.txt’)asfs:count=0foriinfs.read():ifi.isupper...

Spring Boot项目集成Redis,原来这么简单!

在现代软件开发的“快车道”上,SpringBoot无疑是许多开发者手中的“神兵利器”。它以其“约定大于配置”的理念,大大简化了Java应用的开发和部署过程,让开发者能够将更多精力聚焦于业务逻辑本身。...

Apache Commons Pool——优化你的java内存

大家好,我是吉森。我会持续分享一些开发技巧、经验和技术,如果你也热爱各种开发技术,欢迎关注我。今天我们继续介绍ApacheCommons工具包,今天的主角是:CommonsPool。简单地说,它是...

码农成长系列-基于WebSocket的后台消息提醒

场景描述当用户对app有某些业务操作时,需要将该操作友好地提醒给,有接收提醒权限的后台管理者。技术场景分析经分析,要实现上述业务,业务拆解后可能需要解决如下业务①.触发提醒待推送数据的监听②.提醒时接...

百度直播消息系统的实践和演进

导读:直播业务的核心功能有两个,一个是实时音视频推拉流,另一个是直播间消息流的收发。本文主要介绍百度直播服务内的消息服务系统的设计实践和演化。一、背景直播间内用户聊天互动,形式上是常见的IM消息流;...

取消回复欢迎 发表评论: