簡體   English   中英

由於 redis 內存使用,Redis cli 無法連接到 AWS ElastiCache,但應用程序仍然能夠通信

[英]Redis cli unable to connect to AWS ElastiCache due to redis memory usage but application still able to communicate

當內存消耗很高但允許應用程序通信時,redis cli 是否有可能被賦予較低的連接優先級?

我無法通過 cli 連接,因此無法檢查任何內容。 另外,沒有 redis 服務器訪問權限。

我們無需身份驗證即可連接 -

redis-cli -h <hostname>

我運行了一個插入過多 redis 密鑰的進程,這導致了這種情況。 現在,我無法刪除這些鍵。 我擔心,其他必要的鍵會隨着舊鍵被逐出,系統會開始處理 redis 中不可用的東西。

也無法通過 telnet 連接。

  • 此時是否可以通過 Python 腳本進行連接?
  • 如果我重新啟動 Java 應用程序,它還能再連接嗎?
  • 通過 AWS 控制台訪問 redis 服務器是否能夠刪除任何關鍵模式? 我目前沒有訪問權限,因此無法確認自己。 也從未通過它使用過。

更新

以下是從 AWS 控制台獲取的圖表,在此問題發生后的過去 1 天內 -

在此處輸入圖片說明 在此處輸入圖片說明

更新

我瀏覽了elasticache常見問題解答,但沒有發現任何提到能夠在鍵值對級別管理數據或存在一些特殊權限用戶(如在 MySql 的情況下能夠在其他用戶無法連接時連接的 root)連接。

我發現的只是集群級別的管理功能。

從問題來看,不清楚您正在運行的redis-cli -h <host>命令是來自 EC2 內部還是來自您的本地機器(AWS VPC 外部)。

從 EC2 訪問

您必須確保以下幾點:

  • EC2 實例和 Redis 實例都在同一個 VPC 上。
  • EC2 上的安全組應該允許端口 6379(如果應用程序能夠訪問同一 EC2 上的 Redis,則應該已經允許)

從 Amazon VPC 外部訪問

這不是預先配置的內容,我建議您閱讀“如何從 AWS 外部訪問 ElastiCache 資源”標題下的訪問集群文檔

首先,檢查從源(一般為 Ec2 實例)到目標(Redis 主機)的連接。 我們可以使用簡單的命令,例如

#curl -v hostIP(or dnsName):Port
#curl -v myredis.com:6379  or curl -v 192.17.37.42:6379 

如果您看到“已連接”,則網絡沒有問題,否則您必須查看防火牆等網絡配置。

接下來,您可以使用 redis-cli 和以下命令連接到 Redis:

#redis-cli -h myredis.com -p 6379

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM