<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>幻世录</title>
	<atom:link href="http://jonney.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonney.name</link>
	<description>Jonney的Blog</description>
	<lastBuildDate>Thu, 01 Jul 2010 12:36:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Cache和Buffer的区别</title>
		<link>http://jonney.name/internet/cache/cache-and-buffer/</link>
		<comments>http://jonney.name/internet/cache/cache-and-buffer/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 03:48:14 +0000</pubDate>
		<dc:creator>Jonney</dc:creator>
				<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://jonney.name/?p=20</guid>
		<description><![CDATA[缓存技术里面，一般指的都是cache，很多人容易把cache和buffer混淆，虽然有时候cache和buffer的中文名都叫“缓存”。本文介绍了cache和buffer之间的区别和联系。 <a href="http://jonney.name/internet/cache/cache-and-buffer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>缓存技术里面，一般指的都是cache，很多人容易把cache和buffer混淆，虽然有时候cache和buffer的中文名都叫“缓存”。</p>
<p>先举两个例子来说明什么是cache什么是buffer。</p>
<p>cache：假设你是一个图书管理员，坐在桌子帮边帮助读者找到他想要的书，读者说要xx书，你就要跑到书架上去找到xx书，拿回来给读者，你觉得走到书架那里要走很远，而且很多人要的是相同的书，所以你想偷懒，找了个装书的小推车，当读者把书还给你的时候，你就把书先放在小推车上，当另外一个读者再次需要这本相同的书，你就不需要再走到书架那里去拿书了，直接在小推车上拾起来（真轻松）。如果你在小推车上找不到读者要的书，你还是得走远路去书架那里找书（好烦）。不管怎么说，你的工作量减少了很多。读者要的书越扎堆，你就轻松。要是每个读者要的书都是不一样的，那你的小推车就不会发挥作用了。在这里，小推车正是起到了cache的作用：(1)小推车里面的书就是cache的数据；(2)你必须根据书名去找书；(3)读者要的书越扎堆，cache的命中率越高；(4)小推车的容量不会比书架的书多（谁会搞个比书架还大的小推车啊？）。</p>
<p>buffer:家家户户都会有垃圾桶，有垃圾就往垃圾桶里扔，等到垃圾桶满了才拿出去倒。在这里，垃圾桶起到了buffer的作用：(1)垃圾桶里的垃圾就是buffer的数据；(2)等垃圾桶满了才会倒垃圾；(3)不管你要扔的垃圾是塑料袋还是菜叶还是纸片，不分种类，尽管往垃圾桶扔；(4)垃圾桶不能太大（你拖不动），垃圾桶也不能太小（太小的垃圾桶一天要倒很多次）。</p>
<p>如果你学过数据结构，可能会发现，cache和buffer跟两种数据结构很相似：<strong>cache正如map</strong>，<strong>buffer正如list</strong>。实际就是这样的，流行的缓存服务器软件<a title="memcached" href="http://memcached.org">memcache</a>就是把整台服务器当做一个大大的map，通过局域网传输数据。在Java里面，java.io.BufferedInputStream和java.io.BufferedOutputStream就是使用了垃圾桶的原理来提高性能。</p>
]]></content:encoded>
			<wfw:commentRss>http://jonney.name/internet/cache/cache-and-buffer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS的TXT记录有什么用？SPF记录怎么写？</title>
		<link>http://jonney.name/internet/dns/txt-record/</link>
		<comments>http://jonney.name/internet/dns/txt-record/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 12:29:27 +0000</pubDate>
		<dc:creator>Jonney</dc:creator>
				<category><![CDATA[dns]]></category>

		<guid isPermaLink="false">http://jonney.name/?p=6</guid>
		<description><![CDATA[txt记录用来保存域名的附加文本信息，txt记录的内容按照一定的格式编写，最常用的是spf格式，spf用于登记某个域名拥有的用来外发邮件的所有 ip地址。txt记录还可以用来保存域名的短信息，比如代替软件版本查询服务器。 <a href="http://jonney.name/internet/dns/txt-record/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在dns记录里面，除了最常见的a记录，cn记录，mx记录，还有不常见的txt记录。</p>
<p>txt记录用来保存域名的附加文本信息，txt记录的内容按照一定的格式编写，最常用的是spf格式，spf用于登记某个域名拥有的用来外发邮件的所有ip地址。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些，spf格式的txt记录的作用跟mx记录相反，它向收信者表明，哪些邮件服务器是经过某个域名认可会发送邮件的。spf的作用主要是反垃圾邮件，主要针对那些发信人伪造域名的垃圾邮件。</p>
<p>按照spf格式在dns中增加一条txt类型的记录，将提高该域名的信誉度，同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。</p>
<p>spf格式比较复杂，一个最典型的spf格式的txt记录例子为“v=spf1 a mx ~all ”，表示只有这个域名的a记录和mx记录中的ip地址有权限使用这个域名发送邮件。其中v=spf1表示这条txt记录使用的是spf格式版本1；a和mx表示a记录或者mx记录；~all表示除了前面所指定的其他ip地址统统不认可。</p>
<p><a title="openspf.org" href="http://www.openspf.org/" target="_blank">openspf.org</a>提供了一个<a title="spf向导" href="http://old.openspf.org/wizard.html?mydomain=example.com" target="_blank">spf向导</a>用来生成spf。</p>
<p>txt记录除了保存spf之外，还有什么用途？<a href="http://jonney.name">Jonney</a>在这里提供一个例子：假如你开发了一个有几百万用户的应用软件，这个软件每隔几个星期就会升级一次版本，这个软件每次启动的时候都要到你的服务器查询是否有新的版本，这样你必须维护一个或多个版本查询服务器。聪明且懒惰的同学就可以在这里偷懒了，在你的dns里面新增一条txt记录，用来保存软件的版本信息，比如在version.example.com增加一条txt记录version=1.2.5，生存周期为一天，软件启动的时候查询这个txt记录里面的版本信息，这样就省了维护版本查询服务器的成本。</p>
]]></content:encoded>
			<wfw:commentRss>http://jonney.name/internet/dns/txt-record/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
