【Azure Redis 缓存】Azure Cache for Redis服务中,除开放端口6379,6380外,对13000,13001,15000,15001 为什么也是开放的呢?

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【Azure Redis 缓存】Azure Cache for Redis服务中,除开放端口6379,6380外,对13000,13001,15000,15001 为什么也是开放的呢?

问题描述

在使用安全检测工具对Azure Redis服务端口进行扫描时,发现Redis对外开放了13001, 13000,15000,15001端口。非常不理解的是,在门户上只开放了6379,6380这两个端口。那是为什么导致 1300N1500N 端口会是开放的呢?并且是对公网开放?

通过 tcpping Redis hostname  13000/13001/15000/15001 测试,均可以ping通。

对6379,6380也是开放的

 

那么,这是为什么呢?

 

问题分析

其实需要从Redis的架构说起,因为Redis需要实现高可用性(“标准”或“高级”层级中),所以Azure Cache for Redis 在一对 Redis 服务器上运行。 这两个服务器托管在专用 VM 上, 被称为Master/Slave,也称为主/从节点Primay Node / Replica Node)。

Redis 只允许一台服务器处理数据写入请求,这一台服务器是主要节点,而另一服务器是副本。 预配服务器节点后,Azure Cache for Redis 可向其分配主要角色副本角色

  • 主要节点:通常负责为来自 Redis 客户端的写入和读取请求提供服务。 在执行写入操作时,它会向其内部内存提交一个新密钥和密钥更新,并立即回复客户端。 它以异步方式将操作转发给副本。

 

当主节点发生故障不可用是,副本节点会自动升级为新的主节点。而通过Redis的Host name连接时,都是经过前端的Load Balancer来对请求分配到主节点。所以在后端的VM(不管时主节点,或者副本节点)都会开启TLS Port或者非TLS端口。

  • 而13000,13001端口对应于VM的非TLS端口(两个机器),对应Redis服务的6379端口
  • 而15000,15001端口则是对应的TLS端口,对应Redis的6380端口

虽然可以通过13000或者时15000端口连接到Azure Redis服务,但由于Redis所默认的,也是被大众所推崇的连接端口为6379(非SSL) / 6380(SSL)。所以,1300N,1500N端口是Azure Redis的设计使然。 由因为6379端口可以在设置中关闭。所以1300N端口也是可以关闭的。如:

 

另外,由于Azure Redis可以启用集群功能。而集群中需要连接到各个分片就是使用的1300N端口和1500N端口。

启用群集功能后,如何连接到缓存?

连接到缓存时,可以使用的终结点、端口和密钥与连接到未启用群集功能的缓存时使用的相同。 Redis 在后端管理群集功能,因此不需要你通过客户端来管理它。

可以直接连接到缓存的各个分片吗?

群集协议要求客户端建立正确的分片连接。 因此客户端应正确执行此操作。 话虽如此,但每个分片都是由主/副缓存对组成的,该缓存对统称为缓存实例。 可以在 GitHub 上通过 Redis 存储库的 不稳定 分支使用 redis-cli 实用程序连接到这些缓存实例。 使用 -c 开关启动后,此版本可实现基本的支持。 有关详细信息,请参阅 https://redis.ioRedis cluster tutorial(Redis 群集教程)中的操作群集

对于非 TLS,请使用以下命令。

Redis-cli.exe -h <<cachename>> -p 13000 (to connect to instance 0)

Redis-cli.exe -h <<cachename>> -p 13001 (to connect to instance 1)

Redis-cli.exe -h <<cachename>> -p 13002 (to connect to instance 2)

...

Redis-cli.exe -h <<cachename>> -p 1300N (to connect to instance N)

对于 TLS,请将 1300N 替换为 1500N

 

注意:虽然Redis客户端默认连接的是主节点,但如果想要连接到副本节点,也是可以的。只是这会引起一些不可预期的潜在问题,如数据丢失,监控图标上的指标不对等情况。

 

参考文档

tcping 下载https://www.elifulkerson.com/projects/tcping.php

Azure Cache for Redis 的高可用性 : https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability#standard-replication

可以直接连接到缓存的各个分片吗?https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-clustering#how-do-i-connect-to-my-cache-when-clustering-is-enabled

相关文章
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
270 6
|
NoSQL 网络协议 Redis
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
257 1
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
|
NoSQL Linux 测试技术
redis的安装步骤及前台,后台redis服务启动
这篇文章介绍了Redis的安装步骤,包括在Linux系统中下载、传输、解压、编译、安装Redis,以及Redis服务的前台和后台启动方法。
redis的安装步骤及前台,后台redis服务启动
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
1764 4
|
存储 NoSQL Redis
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
103 0
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
|
NoSQL 网络协议 Linux
【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性
【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性
117 0
|
NoSQL Redis C++
【Azure Redis】对Azure Redis服务指标解释(Connections Created/Closed Per Second VS Connected Clinents)
【Azure Redis】对Azure Redis服务指标解释(Connections Created/Closed Per Second VS Connected Clinents)
134 0
|
6月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
1月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
2月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
154 1
Redis专题-实战篇二-商户查询缓存