【Windows】Redis集群部署

article/2025/8/28 12:45:46

集群是如何进行工作的

Redis采用哈希槽来处理数据与节点之间的映射关系,一个集群共有16384 个哈希槽,每个key通过 CRC16算法计算出一个16bit的值,再对16384取模,得到对应的哈希槽,集群通过维护哈希槽与节点的关系来得到key的映射关系。集群节点之间互相通信,把当前节点的哈希槽分配信息互相传递。

客户端在连接到节点时,会获取到哈希槽与节点的映射关系,并缓存到本地。如果节点哈希槽与节点的映射关系改变,那么当客户端使用key计算后访问节点时,如果节点不存在该哈希槽,则会将最新的哈希槽映射关系返回给客户端,客户端更新本地缓存,并根据最新的映射关系再次访问对应的节点操作。

Redis集群安装

在Windows系统下搭建Redis集群需要4个组件:

  • Redis
  • Ruby语言运行环境
  • Redis的Ruby驱动redis-xxxx.gem
  • 创建Redis集群的工具redis-trib.rb

安装Redis,并运行3个实例(Redis集群需要至少3个以上节点,低于3个无法创建)。

使用redis-trib.rb工具来创建Redis集群,由于该文件是用ruby语言写的,所以需要安装Ruby开发环境,以及驱动redis-xxxx.gem。

下载并安装Redis

Redis提供msi和zip格式的下载文件,这里下载zip格式 3.0.504版本。

将下载到的Redis-x64-3.0.504.zip解压即可,为了方便使用,建议放在盘符根目录下,并修改目录名为Redis,如:C:\Redis 或者D:\Redis。

通过配置文件来启动3个不同的Redis实例,由于Redis默认端口为6379,所以这里使用了6380、6381、6382来运行3个Redis实例。

注意:为了避免不必要的错误,配置文件尽量保存为utf8格式,并且不要包含注释

配置文件中以下两种保存日志的方式(保存在文件中、保存到System Log中)请根据需求选择其中一种即可:

loglevel notice                       #日志的记录级别,notice是适合生产环境的
logfile "D:/Redis/Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
syslog-enabled yes       #是否使用系统日志   
syslog-ident redis6380   #在系统日志的标识名

这里使用了保存在文件中的方式,所以先在redis目录D:/Redis下新建Logs文件夹。

redis.6380.conf 内容如下:

port 6380      
loglevel notice    
logfile "D:/Redis/Logs/redis6380_log.txt"       
appendonly yes
appendfilename "appendonly.6380.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6381.conf 内容如下:

port 6381       
loglevel notice   
logfile "D:/Redis/Logs/redis6381_log.txt"       
appendonly yes
appendfilename "appendonly.6381.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6381.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6382.conf 内容如下:

port 6382       
loglevel notice    
logfile "D:/Redis/Logs/redis6382_log.txt"         
appendonly yes
appendfilename "appendonly.6382.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6382.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

配置内容的解释如下:

#端口号
port 6380
#日志的记录级别,notice是适合生产环境的
loglevel notice 
#指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
logfile "Logs/redis6380_log.txt"
#是否使用系统日志    
syslog-enabled yes  
#在系统日志的标识名                       
syslog-ident redis6380
#数据的保存为aof格式                   
appendonly yes
#数据保存文件                            
appendfilename "appendonly.6380.aof"
#是否开启集群    
cluster-enabled yes
#记录集群信息,不用手动维护,Redis Cluster 会自动维护                                    
cluster-config-file nodes.6380.conf
集群节点连接超时时间,如果集群规模小,都在同一个网络环境下,可以配置的短些,更快的做故障转移。 
cluster-node-timeout 15000
#设置为0,如果master slave都挂掉, slave跟master失联又超过这个数值*timeout的数值, 
#就不会发起选举了。如果设置为0,就是永远都会尝试发起选举,尝试从slave变为mater
cluster-slave-validity-factor 10
#只有当旧主服务器仍有至少给定数量的其他工作副本时,副本才会迁移到孤立主服务器。这个数字就是“移民壁垒”。
#迁移屏障为1意味着只有当主副本至少有一个其他工作副本时,副本才会迁移,以此类推。它通常反映集群中每个主节点所需的副本数量。
#默认值为1(副本仅在其主副本至少保留一个副本时迁移)。要禁用迁移,只需将其设置为一个非常大的值。
#可以设置值0,但该值仅用于调试和生产中的危险。
cluster-migration-barrier 1
#设置为no,默认为yes,故障发现到自动完成转移期间整个集群是不可用状态,
#对于大多数业务无法容忍这种情况,因此要设置为no,当主节点故障时只影 响它负责槽的相关命令执行,不会影响其他主节点的可用性。
#只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务,所以一定要改为no
cluster-require-full-coverage yes

将上述配置文件保存到redis目录下,并使用这些配置文件安装3个redis服务,命令如下:

注意:redis.6380.conf等配置文件最好使用完整路径,避免重启Redis集群出现问题

D:/Redis/redis-server.exe --service-install D:/Redis/redis.6380.conf --service-name redis6380
D:/Redis/redis-server.exe --service-install D:/Redis/redis.6381.conf --service-name redis6381
D:/Redis/redis-server.exe --service-install D:/Redis/redis.6382.conf --service-name redis6382

启动这3个服务,命令如下:

D:/Redis/redis-server.exe --service-start --service-name redis6380
D:/Redis/redis-server.exe --service-start --service-name redis6381
D:/Redis/redis-server.exe --service-start --service-name redis6382

下载并安装ruby

1、下载Ruby

地址:Download Archives

下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: D:\ruby22-x64 ,安装时这里选中后两个选项,意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令。

2、下载Redis驱动

下载ruby环境下Redis的驱动,考虑到兼容性,这里下载的是3.2.2版本。

redis | RubyGems.org | your community gem host

注意:下载在页面右下角相关连接一项中

安装该驱动,命令如下:

gem install --local path_to_gem/filename.gem  

3、下载redis-trib.rb

下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb,路径如下:

https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb

建议保存到redis的目录下。

注意:因为redis-trib.rb是ruby代码,必须用ruby来打开,若redis-trib.rb无法识别,需要手动选择该文件的打开方式:

选择ruby为的打开方式后,redis-trib.rb的logo都会发生改变,如下图:

创建Redis集群

cmd下切换到Redis目录,使用redis-trib.rb来创建Redis集群:

redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 

执行结果:

当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群:

检验是否真的创建成功,输入以下命令:

redis-trib.rb check 127.0.0.1:6380

出现以下信息,说明创建的Redis集群是没问题的:

使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息:

D:/Redis/redis-cli.exe -c -p 6380

-c 表示 cluster

-p 表示 port 端口号

输入dbsize查询 记录总数

dbsize

或者一次输入完整命令:

D:/Redis/redis-cli.exe -c -p 6380 dbsize

结果如下:

输入cluster info可以从客户端的查看集群的信息:

cluster info

结果如下:

如果搭建redis集群出现如下的问题:

解决方案:

  • 删除每个节点对应的nodes-xxx.conf配置文件
  • 删除每个节点下的aof、rdb文件
  • 关掉redis集群各个实例的进程,重新启动

Redis的服务命令

假设在Redis的安装目录下,有一个redis.windows-service.conf文件,即默认的配置文件。

如果需要修改端口号,或者设置密码就需要修改其中的内容:

默认端口号是6379,你可以随意修改

port 6379

默认是没有设置密码,如果需要则修改requirepass, 将前面的#去掉,将foobared改成你的密码

# requirepass foobared

Redis官网提供两种安装方式:msi文件格式 和 zip包文件,其中msi格式的redis安装后,即自动添加到系统的服务列表中,而zip包的redis则需要手动安装服务

特别注意:使用默认的配置文件安装Redis服务时,必须在Redis的安装目录下新建一个Log目录,否则会报错,因为在redis.windows-service.conf中设置了日志的保存目录为安装目录下的Log,当然这个可以修改。

Redis常用的服务命令如下:

1)安装服务

--service-install

完整例子:

redis-server.exe --service-install redis.windows-service.conf --loglevel notice

这里就是用了redis.windows-service.conf作为配置文件, --loglevel notice是设置log记录的,基本是notice。

2)卸载服务

--service-uninstall

完整例子:

redis-server --service-uninstall

3)启动服务

--service-start

4)停止服务

--service-stop

5)其他命令

--service-name YourServiceName #设置服务的名字
--port YourPortNumber #设置服务的端口号

使用如下,通过cmd切换到Redis的安装目录,然后输入命令即可,如:

第一条命令为:以redis.windows-servie.conf作为配置文件,名字为 redisTest, 端口号为 6388 来安装一个Redis服务;

第二条命令为:(红色框内)是卸载名为 redisTest的服务


http://chatgpt.dhexx.cn/article/Z492TQ9N.shtml

相关文章

redis设置服务

设置服务 可以看到如果我们启动redis服务的话,每次都要进入到安装目录,这样是不是很繁琐,所以我们将redis做成一个服务,我们直接启动。 首先将utils/redis_init_script文件复制到/etc/init.d下,同时易名为redis。执行命…

Redis 服务管理

对Redis服务器的管理可以使用redis提供的服务命令,也可以借助一些管理软件,如:phpRedisAdmin 一、Redis服务器命令主要是用于管理redis服务 1.bgrewriteaof 异步执行一个 aof(appendonly file) 文件重写操作 2.bgsav…

redis服务(2)

配置 gearman 实现数据同步 Gearman是一个支持分布式的任务分发框架。 Gearman Job Server:Gearman核心程序,以守护进程形式运行在后台。 Gearman Client:可以理解为任务的收件员,比如我要在后台执行一个发送邮件的任务&#xff0…

【MySQL集群+Redis配置】

Mysql集群配置 一、主从备份二、主主备份三、多主一从四、一主多从五、Mysql中间件——Amoeba(读写分离)1))先搭建一个主从关系的服务器2) 从服务器上保存授权信息,并开启从服务线程3)配置读写分离 六、安装…

Redis部署

Redis部署 Redis入门简介源码编译安装 Redis入门简介 Redis是一个开源的基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis是一个key-value存储系统。 和Memcached缓存类似,Redis支持存储的value类型相对更多,包括…

redis数据库服务群集(四)

目录 前言 一、redis集群介绍 1、redis集群优势及实现方法 2、redis三种集群模式的作用 二、主从复制模式 1、Redis主从复制的概念 2、主从复制原理 3、Redis主从复制的作用 4、主从复制流程 5、Redis主从复制的搭建 6、验证主从效果 7、报错排查 三、Redis 哨兵模…

Windows启动redis服务

1、进入到redis的安装目录下,在地址栏输入cmd或者在命令行界面中进入到安装目录下 2、输入命令:redis-server.exe redis.windows.conf 3、出现如下界面表示启动成功

Redis数据库(常用命令及服务部署)

目录 一、关系数据库和非关系数据库 ⭐关系型数据库●一个结构化的数据库,创建在关系模型基础上 ●一般面向于记录 ●包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等 ⭐非关系型数据库 ●除了主流的关系型数据库外的数据库,都认为是非关…

redis服务的部署

redis服务的部署 一. 什么是redis?二. redis的配置以及主从关系二. redis常用指令:三. redis 的高可用1. 什么是高可用?2.配置Sentinel3. 主观下线和客观下线 四. redis集群1.Redis集群2.搭建集群 七. 结合数据库 一. 什么是redis&#xff1f…

【服务端】linux搭建redis集群

分享一次从头到尾的搭建redis的集群过程。 3主3从 图中所有的ip地址都是你自己电脑的ip。 一、安装 1.安装依赖包 yum install gcc-c 由于我之前已经安装过了,所以不用再安装了,没安装过就等它自动完成 2.下载redis,需要注意的是版本需…

将redis 设置为服务

每次启动 redis 都要去到 Redis 安装目录下寻找 redis-server.exe 文件点击,很是麻烦,所以可以通过这个方法将redis设置为服务 进入redis文件夹,输入redis-server.exe --service-install redis.windows.conf --loglevel verbose 出现如下情况…

redis服务

redis软件下载地址:Redis redis支持的数据类型: • 字符串(strings) • 散列(hashes) • 列表(lists) • 集合(sets) • 有序集合(sorted sets) redis常用命令: config get *查看配置select 1选择数据库flushdb清空当前数据库flushall清空所有数据库…

Redis添加到系统服务

一、需求 当我们使用Redis时,需要启动Redis服务,然后才能够在客户端使用,在这里推荐使用一个Redis的客户端管理工具 redisdesktopmanager,每次在控制台打开Redis服务之后,都不能够将该窗口关闭,因为一旦关…

windows redis 后台启动 redis 服务

下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载。目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包,这就是我们需要的: 启动Redis 直接在上…

Redis服务部署

这里写自定义目录标题 一.关系型数据与非关系型数据1.1关系型数据库1.2非关系型数据库1.3关系型数据库和非关系型数据库区别1.4非关系型数据库产生背景 二.Redis简介2.1Redis概述2.2Redis优点 三.Redis服务部署四.Redis常用命令4.1Redis工具4.2Redis数据库常用命令4.3密码设置4…

手机短信验证码

阿里短信手机短信验证码功能 使用阿里短信服务管理 注册 登录阿里云 进入控制台 选择短信服务 开通短信服务价格大概0.04元一条 貌似有100条免费试用。 点击新手指导可查看文档 1 按照顺序进行注册登录实名认证 2 创建AccessKey 3 进入短信服务控制台 创建签名管理 签名模板…

短信验证码

写一个发送验证码的功能,需要实现第三方接口,一般采用阿里的接口 第一步:登录阿里大于官网,只需淘宝号即可。 第二步:申请验证码中的签名和短信模板,审核通过即可测试 第三步:下载阿里大于的jar包&#xff…

Win-mac版 AE 2018安装附教程

链接:https://pan.baidu.com/s/17QXFuotLoPmqDQa8DBBRrA?pwdw106 提取码:w106

AE2022最新功能简介

没有什么是您无法使用 After Effects 创建的。 创建电影电影标题、简介和转场。从剪辑中移除对象。生火或下雨。为徽标或角色设置动画。甚至在 3D 空间中导航和设计。借助行业标准的 动态图形 和 视觉效果软件After Effects,您可以将任何想法付诸实践。 ​下载&…

AE圣诞树(html版本),免费

最近网上很火的AE圣诞树,这里免费提供给大家HTML版本 源码和视频下载:https://download.csdn.net/download/qq_56088882/87260627