【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的

雖然可以通過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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM