问题描述

在使用安全检测工具对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.io 上 Redis 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

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

  1. 【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)

    问题描述 Azure Redis和所有的Redis服务一样,可以让你保留存储在Redis中的数据.以防万一在Redis服务器出现故障的时候能尽可能小的减少数据的损失.在Azure Redis服务中,默 ...

  2. 【Azure Redis 缓存 Azure Cache For Redis】Azure Redis由低级别(C)升级到高级别(P)的步骤和注意事项, 及对用户现有应用的潜在影响,是否需要停机时间窗口,以及这个时间窗口需要多少的预估问题

    问题描述 由于Azure Redis的性能在不同级别表现不同,当需要升级/缩放Redis的时候,从使用者的角度,需要知道有那些步骤? 注意事项? 潜在影响?停机事件窗口? 升级预估时间? 解决方案 从 ...

  3. spring boot redis 缓存(cache)集成

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  4. 【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功

    问题描述 在正常使用Azure Redis的服务中,突然发现Redis 的CPU达到了100%, 正常的使用中发现性能问题严重.从Redis的门户图表中,观察到CPU, Connection,Lent ...

  5. 【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果

    当使用Azure Redis高级版时候,为了能更好的保护Redis的安全,启用了虚拟网路,把Redis集成在Azure中的虚拟网络,只能通过虚拟网络VENT中的资源进行访问,而公网是不可以访问的.但是 ...

  6. 【Azure Redis 缓存 Azure Cache For Redis】Redis连接池

    问题描述 Redis根据定价层说明,不同级别支持的连接数最多可达4万(同时),但是当短时间又大量连接请求建立的时候,Redis服务的服务压力非常大,到达100%.严重影响了高响应的要求.最严重时,经常 ...

  7. 【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能

    问题描述 关于Azure Redis的性能问题,在官方文档中,可以查看到不同层级Redis的最大连接数,每秒处理请求的性能. 基本缓存和标准缓存 C0 (250 MB) 缓存 - 最多支持 256 个 ...

  8. 【Redis缓存机制】1.Redis介绍和使用场景

    (1)持久化数据库的缺点平常我们使用的关系型数据库有Mysql.Oracle以及SqlServer等,在开发的过程中,数据通常都是通过Web提供的数据库驱动来链接数据库进行增删改查. 那么,我们日常使 ...

  9. 【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常

    问题描述 在使用Azure Redis时,遇见Read Timed out异常, Redis的客户端使用的时jedis.问题发生时,执行redis部分指令出错,大部分get指令,set指令能正常执行. ...

随机推荐

  1. 【vue开发】watch中的immediate与deep的使用

    下面是我对于immediate与deep的理解 1.immediate 设置immediate为true后,监听会在被监听值初始化的时候就开始,也就页面上的数据还未变化的时候. 经过测试发现,如果监听 ...

  2. 图片的黑魔法——GitHub 热点速览 v.21.13

    作者:HelloGitHub-小鱼干 图片的黑魔法并不是图片修复.旧照上色,而是将任意文件打包成图片的样子,上传到推特.看过去这张图片平平无奇,那么普通却深藏不露,工程师 DavidBuchanan ...

  3. [React Hooks长文总结系列一]初出茅庐,状态与副作用

    写在开头 React Hooks在我的上一个项目中得到了充分的使用,对于这个项目来说,我们跳过传统的类组件直接过渡到函数组件,确实是一个不小的挑战.在项目开发过程中也发现项目中的其他小伙伴(包括我自己 ...

  4. Android Studio 之 Button(圆角,描边,按压效果)

    •普通Button <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...

  5. python中数组切片[:,i] [i:j:k] [:-i] [i,j,:k]

    逗号","分隔各个维度,":"表示各个维度内的切片,只有:表示取这个维度的全部值,举例说明如下 1 1.二维数组 2 3 X[:,0]取所有行的第0个数据,第二 ...

  6. 常见SQL命令总结学习 -- <1>

    SQL学习网练习记录 参考1:http://sample.jimstone.com.cn/xsql/Course/4.html 参考2:http://sample.jimstone.com.cn/xs ...

  7. Dynamics CRM安装教程九(续):自建证书的CRM项目客户端设置CRM访问

    配置完IFD之后就可以为客户端电脑配置访问CRM了首先到CA证书服务器中把证书下载下来,打开CA服务器的浏览器,输入地址http://stg-ad/certsrv/ 其中stg-ad是机器名之后点击下 ...

  8. oo第二单元——多线程魔鬼电梯

    在初步认识了面向对象思想后,立刻进入了多线程的学习,本单元的难点主要是锁的理解,需要保证线程安全的同时防止死锁的发生,也要尽可能缩小锁的范围,提高性能.这一单元以电梯为载体,让我们从生活出发,从电梯运 ...

  9. antd+react项目迁移vite的解决方案

    antd+react+webpack往往是以react技术栈为主的前端项目的标准组合,三者都有成熟的生态和稳定的表现,但随着前端圈的技术不断革新,号称下一代构建平台vite2的发布,webpack似乎 ...

  10. DevOps之Jenkins相关知识

    目录 认识Jenkins 持续集成 持续交付 Jenkins简介 为什么需要Jenkins Jenkins的目标 Jenkins安装 初次使用Jenkins 加速插件安装 Jenkins-CI Jen ...