Redis集群方案及实战(四)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis集群方案及实战

四.RedisCluster-Windows搭建

1.概述

  • Redis官网的最新版本是7.0,但是并没有适配Windows版本。windows版本一直都是微软在进行维护,不过不会是最新版本,是基于Redis的稳定版本制作,本文编写时GitHub上Windows版本最新版为5.0.14.1
  • Redis官方网址:redis.io/download/

  • 微软Github网址:github.com/tporadowski…
  • 建议使用5.0.14,因为5.0.14.1搭建集群时,从节点会报以下错误,具体原因未知,如果有知道的看官老爷可以评论区告知,感谢!!!

2.实战

  • 第一步:Github下载5.0.14版本Redis
  • 第二步:创建一个文件夹,将下载好的压缩包解压到一个文件夹中,并复制5份,以端口号命名,代表6个节点,最少6个节点,三主三从

  • 第三步:修改每个文件夹中的redis.windows.conf文件,修改以下几个地方,注意每个节点配置文件端口需要按照节点自己的端口号进行配置,其他参数各位可以视情况进行修改。可以修改一份后拷贝到每个文件夹中,然后修改两处端口号即可
# 是否开启保护模式,yes时外部访问redis需要配置bind ip或访问密码,线上建议开启
protected-mode no
# 每个redis的端口都需要不同
port 6379
# 是否开启集群
cluster-enabled yes
# 该参数指定了集群配置文件的位置。每个节点在运行过程中,会维护一份集群配置文件
# 每当集群信息发生变化时比如增删节点,集群内所有节点会将最新信息更新到该配置文件
# 当节点重启后,会重新读取该配置文件,获取集群信息,可以方便的重新加入到集群中
# 此集群配置文件redis节点会自行维护,注意修改端口号
cluster-config-file nodes-6379.conf
# 集群节点不可用的最大时间,单位是毫秒,如果主节点在指定时间内不可达,那么会进行故障转移
cluster-node-timeout 15000
# 云服务器上部署需指定公网ip,或者Linux系统中的Docker运行时需要指定宿主机Ip
# cluster-announce-ip 公网ip地址
# 开启AOF持久化
appendonly yes
# AOF持久化文件名称
appendfilename "appendonly.aof"
# 设置节点密码,注意所有节点密码必须一致
requirepass 123456
# 主节点连接密码,用于保护集群,保持与requirepass一致即可
masterauth 123456

  • 第四步:使用命令根据配置文件启动所有节点,此时只是启动所有节点,但是没有启动集群
redis-server.exe redis.windows.conf

  • 也可以编写启动脚本,在每个节点文件夹里面放置一个此bat文件,双击脚本即可启动节点

  • 第五步:在任意一个集群节点目录下执行命令启动集群
  • --cluster-replicas 1:一个主节点有一个从节点
  • -a:此属性指定集群节点密码,如果没有配置密码则不需要此属性
  • 注意:第一次需要执行创建集群命令,创建成功后续如果再想打开集群,那么启动所有节点即可,无需再次执行创建集群命令
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1 -a 123456
  • 此处会询问我们是否接受他分配的节点主从关系以及HashSlot,我们输入yes即可

  • 第六步:测试
  • 注意:在创建集群之前一定不能连接节点,否则会创建集群失败
# 连接集群节点,可以连接启动的任意节点 -a 是指定节点密码
redis-cli.exe -c -h 127.0.0.1 -p 6379 -a 123456
# 查看集群信息
cluster info
# 查看当前Redis节点
info replication
# 查看当前节点槽位
cluster nodes

  • keys命令只能查当前节点,但是get、set命令可以操作所有节点

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
NoSQL 算法 Java
深入浅出Redis(八):Redis的集群模式
深入浅出Redis(八):Redis的集群模式
|
7天前
|
NoSQL Redis
透视Redis集群:心跳检测如何维护高可用性
Redis心跳检测保障集群可靠性,通过PING命令检测主从连接状态,预防数据丢失。当连接异常时,自动触发主从切换。此外,心跳检测辅助实现`min-slaves-to-write`和`min-slaves-max-lag`策略,避免不安全写操作。还有重传机制,确保命令无丢失,维持数据一致性。合理配置心跳检测,能有效防止数据问题,提升Redis集群的高可用性。关注“软件求生”获取更多Redis知识!
107 10
透视Redis集群:心跳检测如何维护高可用性
|
8天前
|
监控 NoSQL 算法
探秘Redis分布式锁:实战与注意事项
本文介绍了Redis分区容错中的分布式锁概念,包括利用Watch实现乐观锁和使用setnx防止库存超卖。乐观锁通过Watch命令监控键值变化,在事务中执行修改,若键值被改变则事务失败。Java代码示例展示了具体实现。setnx命令用于库存操作,确保无超卖,通过设置锁并检查库存来更新。文章还讨论了分布式锁存在的问题,如客户端阻塞、时钟漂移和单点故障,并提出了RedLock算法来提高可靠性。Redisson作为生产环境的分布式锁实现,提供了可重入锁、读写锁等高级功能。最后,文章对比了Redis、Zookeeper和etcd的分布式锁特性。
108 16
探秘Redis分布式锁:实战与注意事项
|
9天前
|
监控 NoSQL 算法
Redis集群模式:高可用性与性能的完美结合!
小米探讨Redis集群模式,通过一致性哈希分散负载,主从节点确保高可用性。节点间健康检测、主备切换、数据复制与同步、分区策略和Majority选举机制保证服务可靠性。适合高可用性及性能需求场景,哨兵模式则适用于简单需求。一起学习技术的乐趣!关注小米微信公众号“软件求生”获取更多内容。
41 11
Redis集群模式:高可用性与性能的完美结合!
|
10天前
|
监控 NoSQL Redis
|
11天前
|
存储 NoSQL Java
Spring Boot与Redis:整合与实战
【4月更文挑战第29天】Redis,作为一个高性能的键值存储数据库,广泛应用于缓存、消息队列、会话存储等多种场景中。在Spring Boot应用中整合Redis可以显著提高数据处理的效率和应用的响应速度。
26 0
|
14天前
|
存储 缓存 NoSQL
node实战——koa给邮件发送验证码并缓存到redis服务(node后端储备知识)
node实战——koa给邮件发送验证码并缓存到redis服务(node后端储备知识)
19 0
|
15天前
|
NoSQL Redis Docker
使用Docker搭建Redis主从集群
使用Docker搭建Redis主从集群
32 1
|
15天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis缓存数据实战
Redis入门到通关之Redis缓存数据实战
21 0
|
15天前
|
存储 缓存 NoSQL
Redis实现延迟任务的几种方案
Redis实现延迟任务的几种方案