Loading...

Tag Archive for '%e7%89%9b%e6%89%91'

    AD: 猛买网,精彩团购 | Jobsdigg | 很棒的男装店 | 网站地图

BrandNew Server

他是个淘宝卖家。3年前我从他那里买这个域名blogkid.cn,那时的我还什么都不懂。很快这个域名又该续费了。3年之后,他应该是淘宝做IDC业务信誉度最高的了,我又从他那里买了台服务器过来。
PE2180的处理器,1GDDR2 667内存,160GSata硬盘,配置还不算落后。下午和晚上我都工作在服务器上,迁移之前的数据是一件辛苦的事,所幸现在已经初步完成了,只消重新解析下域名就可以了。
忙碌时顺便看了一下网站上的几个备忘,发现第一条是去年的4月19日。那时我正被缺乏缓存的系统、缺乏索引的数据库弄得灰头土脸,也因为这个很快地学了不少东西。又是一个4月19日,我买来了新的服务器,这次能学些啥呢?
挑战杯周一要交稿,长时间地处于很多件事情中,很忙很累。

5K

不曾多关注,牛扑流量悄然超过了5K,虽然收入没有一起提升。昙花一现也罢,大学也有过一个流量超过5K的网站。
3年前开始写blog,每天20IP就是自己的愿望。2年前和buyren一起成长,亲眼看着一个论坛从小到大,颇觉难以置信。1年前着手写牛扑,上线后屡屡受挫,Google现在还片页不收。

ZF

今天在做Camel的时候,对ZF中的Cache的一些初始化选项觉得有些疑惑,于是找来了官方的文档看了看。不看不知道,一看之下才发觉自己之前对ZendCache的使用简直太浅薄了。现在的ZendCache可以对页面某一部分做Cache,也可以对整个页面进行Cache,Cache的保存方式也多种多样,真的很强大。之前我自己对Cache的思考,和他们所做的工作比起来,可以说是微不足道了。
所以牛扑还需要更大的改动。今天我一度动摇,想用Python来重写牛扑,但很快就打消了这个念头。牛扑的架构需要进行更改,我打算大量地使用ZF框架中的组件。这个假期还有些遗憾就是,没有把足够的时间花在看Lucene上。智勇说牛扑啥都搜不出来,这是因为没用全文检索阿。记得那时Tiny还说要送我一个他们在这方面的产品,可那我也得会用阿。
不过,现在做Web开发会觉得顺手很多,因为网络上流行的框架有一大堆,总能找到适合你的一款。若不,说明你已经高超到该自己去写框架了。牛扑几乎所有的方面都需要改进,用户界面、全文检索、缓存算法、数据库结构……回头看自己之前的项目总会觉得千疮百孔。不过,一个一个来吧,我打算把这个拿来做我的毕业设计。
晚上还花了十来分钟,给机器人在互联网的某个角落,安了一个小小的开关。以后机器人掉线,就不需要爬上服务器去改了。只要对那个开关说一个暗语,机器人就会被重新打开。想着你说机器人不见了时可爱的表情,我忍不住就把这个秘密泄漏给了你。

888

今天和徐老师聊了一下,下个月初或许可以到扬州玩一圈。只是有点担心会耽误时间上的安排。下个月争取能在中旬回到家吧。然后准备一下,去北京。Oh,想像一下见到Y和,智勇他们的情景。
现在最想要的东西不是钱,不是别的,只想要一个足够大的书架让我不用发愁给一大堆买来的书找摆放的地方,因为牛扑,我买书的欲望突然就大了很多。在图书馆借来看着顺眼的图书,忍不住就想买一本下来收藏。
接下来的十天充满了考试,这个充实的学期终于走到了尽头,不知道这次考试运气如何。暑假的两个月又显得太忙碌了,最近更新blog可能没那么勤快了,其实今天想写写Web开发和NBA的。
这篇文章发出去的ID会是888,刚刚看牛扑的统计,今天IP跌了点,现在的流量是888。

Alexa排名又涨

一夜之间,牛扑涨了20多万名,blogkid.cn涨了2万多名。最近牛扑流量上涨其实还没反映在Alexa上,也不好估计这段时间过后排名会在什么地方。

Candy

现在用FF访问牛扑,在地址栏右端会有一个“”的图标。今天给牛扑上的新图书做了一个Feed输出,输出最近增加的19条图书。为什么是19条呢?哈,因为今天是我19岁生日。
如果你在用抓虾,可以添加频道时输入“http://www.niupu.com/”,就可以订阅到了。下一步看情况要不要做按照Tag输出的Feed。
真实的Feed地址其实是:http://feeds.feedburner.com/niupu

缓存的效率

今天尝试着在牛扑的三个页面上用了缓存:tag页面,分类页面以及图书信息页面。中午没吃饭,把它搞了出来。刚刚放上去的时候,缓存之后的页面效率很高,基本上比原来的查询提高了一个数量级。
但是下午出去办了很多事情,晚上和徐老师聊了很久,再回来看牛扑,程序的效率已经让我惨不忍睹。一个简单的图书信息页面都在几十秒才能出来,而且是使用缓存之后──为什么呢? 原因在于缓存的文件太多了。
现在那个缓存目录下,大概有几万个文件。想像一下ZendCache需要在这几万个文件中准确找出那个对应的缓存文件,然后判断它是不是过期了,这中间的开销不亚于从百万级别的数据库中来检索(因为数据库的检索是可以进行优化的)。 现在那里边的文件已经多到我使用rm命令都删除不了了,相当恐怖。
当然,上次PHP之父Rasmus 说,缓存可以有很多层次。其实用ZendCache适合做通用的缓存,在缓存内容比较少的时候效率提升很明显。但是文件数目的增多会使效率急剧下降,所以,控制一个较短的lifetime可以算一个解决的办法了。
另外,牛扑上的图书目录所用的缓存就很稳定。看来这些东西还是应该自己好好去实践一下。通用的缓存架构不一定是提升效率的稻草。

Cache

最近在研究PHP中的缓存,在牛扑上一个简单的图书信息页面(比如这个)都要进行至少9次数据库查询,而其中大部分东西都是在相当长一段时间不会变的,所以把这些内容缓存出来是很必要的。其实现在的牛扑一部分内容是有缓存的,当然效果很好,但缓存没有大规模使用,会限制整站的速度。于是我开始找一种通用的缓存机制,果然被我找到了,那就是ZF中的Zend_Cache。
其实缓存的概念在很多地方都有,CPU中有一级缓存二级缓存,缓存的存在大大提高了信息交换的速度(当然,和命中率有关),其实是一种空间换时间的办法。空间换时间的思路在编程中也有,特别是在做ACM时,对解法要求的效率很高,这些时候“空间换时间”的思想往往会对解题有很大帮助。
Zend_Cache是包含在ZendFramework中的,我查看了一下官方文档,发现介绍的比较简单。后来找到了Babel的程序,才看到了实例。V2EXCore.php中有这样一段:
if ($o = $this->cs->get(‘babel_top_wealth’) && $cached) {
echo $o;
} else {
ob_start();
/*output sth.*/
$o = ob_get_contents();
ob_end_clean();
$this->cs->save($o, ‘babel_top_wealth’);
echo $o;
}
其中$this->cs是一个初始化好的缓存类。在这里,思路是这样,如果缓存”babel_top_wealth”命中,就输出,如果没有命中,就通过ob_start()/ob_get_contents()获得输出的内容,然后保存到缓存。坦白说,这个比我以前自己写的缓存类好使多了。
现在唯一的问题是,缓存很多的话查找也是一个问题。牛扑上的50W本书假如有10W本进入缓存,估计需要的空间在1G左右。这个时候,到底是数据库的速度快呢,还是利用程序的逻辑从磁盘上读的速度快呢?

下一期沙龙

明天的沙龙继续进行,时间是下午18点,地点在11教114教室。由popo主讲,标题是“IT泛传播”(汗一个,我也不知道啥意思,不过看popo胸有成竹的)。欢迎感兴趣的朋友一起过来,交流为主 。
最近一直有个北京的SB在抓牛扑的数据,不过他也真够不争气的,这么长时间了,只抓了6W来条。每次我都毫不犹豫地封掉那个IP。牛扑现在有50多W本图书的数据(当然,还不够多,还在不断地增加中),如果谁需要使用这部分东西可以直接联系我。对于这个IP是125.33.171.56的北京SB——当然,可能这个只是他的服务器,我鄙视鄙视再鄙视。
今天本来想写一些社会实践方面的东西,结果包月的上网卡到期了,还是以后写吧。关于我们的沙龙我在InHDU开了一个用于讨论的板块:http://www.inhdu.cn/go/yellow,欢迎过来。

如蒙大赦

今天晚上踢完球去自动售货机买可乐的时候,白白被吞了10块钱,晦气!不过回来就发现牛扑今天在百度的收录量已经上来了,终于告别了百度收录20多条的时代。不过事情还不好说,百度在这方面一向起伏比较大。
Google还没有收录牛扑,按照之前的说法,再过上几个星期应该会有了。这两周来提心吊胆,真的是如蒙大赦啊。
另外,通过这几次还观察到一个细节,百度站点收录的数据更新一般都会放在早上八点左右。