一文搞定windows下redis的集群搭建(三主三从)

总体概述

1.Redis (安装Redis并运行3个实例,Redis集群需要至少3个以上节点,低于3个无法创建);
2.Ruby语言运行环境
3.Redis的Ruby驱动redis-xxxx.gem
4.创建Redis集群的工具redis-trib.rb

一.安装并搭建集群

1.下载redis对应版本(版本必需要3.0以上)

下载地址: https://github.com/MSOpenTech/redis/releases 下载ZIP压缩格式文件,并解压在硬盘中相应位置(这里可以在任意硬盘根目录下创建一个名为Redis的目录,并解压到此文件夹中)

2.下载并安装Ruby语言环境

下载地址: https://rubyinstaller.org/downloads/
在这里插入图片描述如果你的电脑是64位,选择x64下载;否则,32位选择x86下载。这里选择倒数第二个下载(hhh~江湖传说一般最新版本可能不稳定)

下载完成后,打开文件,启动 Ruby 安装向导。
点击 Next,继续向导,记得勾选 Add Ruby executables to your PATH,直到 Ruby 安装程序完成 Ruby 安装为止。
在这里插入图片描述

如果您的安装没有适当地配置环境变量,接下来您可能需要进行环境变量的配置,这里不做叙述。

3.下载ruby环境下Redis的驱动

链接: https://rubygems.org/gems/redis/versions/4.6.0
在当前ruby目录下,打开cmd终端,输入gem install redis (下载的是最新版本)

路径:
在这里插入图片描述

执行结果:
在这里插入图片描述

4.在redis下创建模拟的主从服务器

在redis目录下建立7000-7005六个文件夹,将redis下面的文件复制到7000节点文件夹下面(其他的也是这样操作)
在这里插入图片描述

修改6个文件夹下redis.windows.conf 文件配置

先修改节点的端口号(其他节点文件夹也是)
!](https://img-blog.csdnimg.cn/fbc209a052e047a28e00d8c12ce18cb9.png)

如果cluster-enabled 不为yes, 那么在使用JedisCluster集群代码获取的时候,会报错。
cluster-node-timeout 调整为 15000,那么在创建集群的时候,不会超时。
cluster-config-file nodes-6379.conf 是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。

在这里插入图片描述

5.下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb

链接: https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb 若打不开就多试几次,若打开后是个网页,则在redis中创建一个文本文件,将页面内容复制到文本中,并修改文件名和格式如下述所示,文件格式最终为Ruby文件。

另附ruby脚本文件redis-trib.rb的地址,请参考链接:https://pan.baidu.com/s/1jlmL1fsspNgBjlrj9czMkQ
提取码:AXZ8
在这里插入图片描述

6.在redis目录下打开cmd终端,执行:redis-server.exe redis.windows.conf

在这里插入图片描述

7.分别打开7000-7005服务器

这里以一个服务器操作为例,其余端口号为对应各自节点

在7000目录下打开cmd窗口执行命令:redis-server.exe redis.windows.conf

在这里插入图片描述

分别在7001,7002,7003,7004,7005目录上打开cmd并执行上述操作

8.再次在redis目录打开cmd终端

执行:ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
在这里插入图片描述

三主三从集群搭建成功!

二.集群搭建过程中可能出现的问题

异常:Node 127.0.0.1:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

问题描述:导致异常的主要原因是该节点中默认生成的配置或历史存储数据不一致导致的。

可能出现的错误原因:这里由于在构建集群时,先启动了7000-7005节点的,之后启动了redis服务,启动先后顺序发生了问题,导致Node xxx is not empty

dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。

== 解决方法:清除对应节点的dump.rdb、nodes.conf文件,重启之后即可。==

  • 12
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的核心组成部分之一,采用SSM框架的天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。本课程是一门专业的Java微服架构开发实战课程,主要讲解了当下流行的SpringBoot框架、SpringCloud架构以及与第三方技术整合开发实战内容。通过本课程的学习,能够理解并掌握SpringBoot的基础知识,同时能够掌握SpringBoot与常用的第三方技术整合实现实际开发中的业务需求,包括实现Web开发、数据访问、缓存管理、安全管理、消息服务、任务管理等;了解并掌握SpringCloud微服务架构的基础知识及相关组件的应用,掌握微服务架构在企业级开发的实践,建立起微服架构思想。项目技术栈:采用SpringBoot简化商城系统的初始搭建以及开发过程采用SpringMVC+Spring+IBatis完成项目的整合采用Mysql作为数据库存储,Druid配置数据库连接池采用SpringCloud+Netflix 微服务技术栈的实战开发使用Redis完成缓存的数据存储,搭建Redis搭建主从、哨兵、集群应用,保证Redis的高可用使用ElasticSearch全文检索系统进行商品数据搜索,使用ElasticSearch搭建搜索服务的高可用使用Ngnix实现页面动静分离与负载均衡的配置采用FastDFS文件储存系统文件存储,完成广告图片、商品图片的上传和存储系统使用采用CAS+shiro单点登录系统实现用户认证使用ECharts根据后台查询数据生成图表使用POI实现了商城盈利状况的Excel表格导出。商品的详情页使用Thymeleaf完成页面静态化,减少页面数据展示延迟项目中使用SpringBoot下的Aop + 自定义注解完成用户行为记录,日志采集后台管理系统使用Shiro实现登录验证和权限管理(超级管理员、管理员、产品编辑员)项目整合微信完成订单的支付使用Redission完成分布式锁,生成订单的编号使用SpringCloud Alibaba Seat完成下订单模块的分布式事务(新增订单表,库存减少,库存超卖设计)使用RabbitMQ 做消息队列,完成订单未支付自动取消和模块直接的解耦合使用Quartz任务调度,完成缓存的定时刷新,保证缓存的一致性使用本地消息表机制完成消息然队列RabbitMQ消息可靠性传输订单支付模块使用微信扫码支付,并设置订单超时自动取消通过Jquery实现前端校验,通过基于Hibernate的Valida注解实现后端的校验功能使用Base64编码对Json数据传输进行编码和解码项目使用RESTful设计风格实现资源的访问,实现前后端分离项目使用聚合数据第三方短信平台完成用户的登陆功能项目使用SpringBoot整合JavaMail完成邮件的发送项目使用SpringBoot整合Swagger2生成接口文档使用PostMan完成接口的测试项目的测试:SpringTest、dbunit、EasyMock使用Docker 进行应用的自动化打包和发布、自动化测试和持续集成、部署和调整其他应用使用 PowerDesigner,完成数据库的建模项目使用禅道进行BUG管理环境采用Maven实施多模块项目构建,采用Git进行项目版本管理 架构解读:  项目部分截图:              讲义部分截图:          
Redis集群中,三主三从架构是一种常见的搭建方式。每个节点都可以相互连通,客户端可以连接任何一个节点来访问整个集群中的数据和执行操作。三个主节点提供服务,而三个从节点则提供备份功能,存储集群中所有主节点和从节点的信息。 在搭建这种集群时,不需要修改端口配置,因为每个节点都在不同的机器上,这样才能实现真正的高可用性。如果在同一台机器上搭建集群,那就是伪集群了。 使用哨兵模式搭建三主三从的Redis集群有一些优点和缺点。优点包括:主从节点的自动切换使得系统更加健壮,可用性更高。缺点则在于Redis较难支持在线扩容,特别是在集群容量达到上限时,进行在线扩容会变得非常复杂。这时候,集群模式可能是一个更好的选择。 综上所述,使用三主三从架构搭建Redis集群可以提供高可用性和数据备份功能,但在线扩容可能存在一定的挑战。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis三主三集群搭建(三台机器)](https://blog.csdn.net/weixin_44519124/article/details/113274037)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis搭建集群,三主三从集群模式](https://blog.csdn.net/xiefazhi123/article/details/119147657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值