0

尽管某些递归名称服务器配置确实(草率地)称为“缓存”,例如,被 RHEL/Fedora/CentOS 称为“缓存”,但这对于该功能来说是一个非常糟糕的名称——因为缓存与递归是正交的。

从理论上讲,您可以编写一个执行递归服务但不缓存其结果的名称服务器。(这有点反常,我什么都不知道。)相反,缓存的名称服务器包对如何递归一无所知,而是做不太有用的替代迭代服务很常见:dnsmasq、pdnsd 等。 …………

以上文字来源: http: //linuxgazette.net/170/lan.html

请解释作者所说的“缓存与递归正交”是什么意思?

4

3 回答 3

2

从维基百科对正交的定义

例如,一辆汽车有正交的组件和控制(例如,加速车辆不会影响其他任何东西,但只涉及加速功能的组件)。

作者是说nameserver是否缓存与能否递归无关。

于 2010-01-27T14:52:25.057 回答
1

缓存与递归正交?

缓存不需要/暗示递归。

术语“正交”旨在从数学意义上松散地解释为“事物没有共同点,即单独的概念”。

于 2010-01-27T14:50:16.123 回答
0

这意味着它是一个功能独立于另一个功能。或者有这两个特征对另一个没有影响。所以它们可以独立实现

从编程的角度来看,两个正交特征

do_work(bool feature1, bool feature2)
{
  // do common work

  if(feature1)
  { //... do this }

   // do common work

  if(feature2)
  { // do work }

  // do common work
}

或者:如果它们不是正交的:

您需要这样做:(并且可能存在无法结合这两个功能的情况。

do_work(bool feature1, bool feature2)
{
  if(not feature1 and feature 2)
  { //... do this }

  else if(feature1 and not feature2)
  { // do work }

  // else impossible or different behavior
  // etc..
}
于 2010-01-27T14:58:21.250 回答