阿里云Redis數(shù)據(jù)庫因域名解析失敗導致連接問題的解決方法
發(fā)布時間:2019-07-10 點擊數(shù):3525
在使用Redis連接地址連接實例時,如果因DNS服務出現(xiàn)問題導致ECS解析連接地址失敗,ECS與Redis之間的網(wǎng)絡連接將會中斷。您可以根據(jù)本文的建議嘗試解決此類問題。
背景信息
ECS與Redis之間出現(xiàn)連接問題的原因多種多樣,DNS解析失敗是其中較為常見的一種。當出現(xiàn)UnknownHostException或者failed to connect: r-***************.redis.rds.aliyuncs.com could not be resolved之類提示未知主機名或連接地址無法正常解析的報錯時,請檢查域名的正確性和DNS服務器設置,并刷新DNS緩存。
說明 本文以Linux環(huán)境為例進行說明。
操作步驟
-
檢查業(yè)務代碼中設置的Redis連接地址是否正確。
-
使用# cat /etc/resolv.conf在ECS中查看/etc/resolv.conf文件中是否正確設置了DNS服務器地址。
說明- 如未設置DNS服務器請使用# vi /etc/resolv.conf命令編輯/etc/resolv.conf,按照上圖中的格式添加DNS服務器地址,編輯完成后按鍵盤上的Esc鍵,輸入:wq之后按下回車保存修改。
- 建議您使用ECS中默認的DNS服務器或將其自定義為其它安全穩(wěn)定的DNS服務器。
-
根據(jù)您使用的DNS服務在下方選擇相應的方法清除DNS緩存。
-
清除nscd的DNS緩存:
# service nscd restart
或使用:
# service nscd reload
-
清除dnsmasq的DNS緩存:
# service dnsmasq restart
-
清除BIND服務器中的DNS緩存 :
# /etc/init.d/named restart
或使用:
# rndc restart
-
清除nscd的DNS緩存:
說明 如果以上步驟未能解決問題,您可以采用臨時方案,在 /etc/hosts文件中加入Redis的域名和IP的映射,確保域名可以正常解析,之后參考Redis連接問題排查與解決嘗試排除其它原因引起的連接問題。hosts文件的編輯方法請參見本文第2步的說明部分和下圖示例。請注意,修改hosts文件只能作為臨時解決方案,如果Redis實例的IP地址發(fā)生改變,該方案將會失效。