Java级DNS缓存的目的是什么?

时间:2011-06-27 04:29:45

标签: java android caching dns

目前我正在开展一个Android项目。我怀疑是否重新编写了java级别 DNS 缓存。通过搜索,我发现通过调用下面提到的函数,我们可以实现它。

 System.setProperty( "networkaddress.cache.ttl", "0" );
 System.setProperty( "networkaddress.cache.negative.ttl", "0" );

基于此,它会缓存名称查找数据。我想知道因为这个属性的目的或影响。

2 个答案:

答案 0 :(得分:3)

目的是减少DNS请求。这样可以更快地下载,因为主机名的IP已经在缓存中。

这是直接影响标准网络库的Java系统属性。它允许您调整Java级别的DNS缓存。

与所有缓存一样,缓存有时不会产生预期效果,例如当某些DNS条目发生更改时缓存会更新。

我将值0(无缓存)或-1(永久缓存)仅用于测试目的。

答案 1 :(得分:0)

另外我认为你不能像上面那样设置属性。在JVM上,您需要使用

java.security.Security.setProperty(“networkaddress.cache.ttl”,“10”);

(不确定Android)