DNS 緩存是一個(gè)臨時(shí)數(shù)據(jù)庫(kù),用于存儲(chǔ)有關(guān)以前的 DNS 查找的信息。
換句話說,每當(dāng)你訪問網(wǎng)站時(shí),你的操作系統(tǒng)和網(wǎng)絡(luò)瀏覽器都會(huì)保留該域和相應(yīng) IP 地址的記錄。
這消除了對(duì)遠(yuǎn)程 DNS 服務(wù)器重復(fù)查詢的需要,并允許你的 OS 或?yàn)g覽器快速解析網(wǎng)站的 URL。
但是在某些情況下,例如:對(duì)網(wǎng)絡(luò)問題進(jìn)行故障排除,或者在更改 DNS 解析器之后,你將需要刷新 DNS 緩存。
這將清除緩存的 DNS 條目,并根據(jù)新配置的 DNS 設(shè)置執(zhí)行后續(xù)查找以解析域。
對(duì)于所有Windows版本,清除DNS緩存的過程都是相同的。
您需要使用管理員權(quán)限打開命令提示符并運(yùn)行ipconfig /flushdns。
在Linux上,除非已安裝并運(yùn)行諸如systemd-resolved,dnsmasq或nscd之類的緩存服務(wù),否則沒有操作系統(tǒng)級(jí)DNS緩存。
根據(jù)Linux發(fā)行版和所使用的緩存服務(wù),清除DNS緩存的過程有所不同。
# yum -y install nscd
# yum info nscd
# rpm -ql nscd


nscd會(huì)緩存三種服務(wù)passwd group hosts,所以它會(huì)記錄三個(gè)庫(kù),分別對(duì)應(yīng) /etc/passwd, /etc/hosts 和 /etc/resolv.conf
每個(gè)庫(kù)保存兩份緩存,一份是找到記錄的,一份是沒有找到記錄的。
每一種緩存都保存有生存時(shí)間(TTL)。其作用就是在本當(dāng)中增加cache ,加快如DNS的解析等的速度。

如果開啟了本地緩存:
Linux 機(jī)器要解析某個(gè)dns并不需要每次都去查詢DNS server, 它會(huì)維護(hù)一個(gè)本地的cache. 通過TTL管理本地cache何時(shí)失效。
TTL 由客戶端所對(duì)應(yīng)的authoritative server 決定。
如果是做搜索引擎或是一些代理服務(wù)類的項(xiàng)目,比如短信通道,數(shù)據(jù)推送服務(wù),這個(gè)性能提升還是比較可觀的。
但在一般的項(xiàng)目中,一臺(tái)服務(wù)器每分鐘發(fā)幾十萬(wàn)次請(qǐng)求的情況是很少見的,所以這個(gè)性能提升也微乎其微。
參考
Linux開啟nscd服務(wù)緩存加速
https://www.cnblogs.com/xiewenming/p/8521059.html
Unix Linux Windows 如何清除 DNS 緩存
https://sysin.org/blog/how-to-flush-dns-cache
如何清除DNS緩存
https://www.myfreax.com/how-to-clear-the-dns-cache
如何有效的清除 DNS 緩存
https://www.hi-linux.com/posts/56208.html