
<?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>QK31</title>
	<atom:link href="http://blog.qk31.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.qk31.com</link>
	<description>Work more with less complain</description>
	<lastBuildDate>Thu, 16 Jun 2011 14:35:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>【转】PHP搭建百万级网站架构技术揭秘</title>
		<link>http://blog.qk31.com/2011/06/16/%e3%80%90%e8%bd%ac%e3%80%91php%e6%90%ad%e5%bb%ba%e7%99%be%e4%b8%87%e7%ba%a7%e7%bd%91%e7%ab%99%e6%9e%b6%e6%9e%84%e6%8a%80%e6%9c%af%e6%8f%ad%e7%a7%98/</link>
		<comments>http://blog.qk31.com/2011/06/16/%e3%80%90%e8%bd%ac%e3%80%91php%e6%90%ad%e5%bb%ba%e7%99%be%e4%b8%87%e7%ba%a7%e7%bd%91%e7%ab%99%e6%9e%b6%e6%9e%84%e6%8a%80%e6%9c%af%e6%8f%ad%e7%a7%98/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 14:35:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=717</guid>
		<description><![CDATA[【来源】http://www.phpchina.com/?action-viewnews-itemid-38710 　　在了解过世界最大的PHP站点，Facebook的后台技术后，今天我们来了解一个百万级PHP站点的网站架构：Poppen.de。Poppen.de是德国的一个社交网站，相对Facebook、Flickr来说是一个很小的网站，但它有一个很好的架构，融合了很多技术，如 Nigix、MySql、CouchDB、Erlang、Memcached、RabbitMQ、PHP、Graphite、Red5以及Tsung。 统计信息 ◆200万注册用户数; ◆2万并发用户数; ◆每天20万条私有消息; ◆每天25万登录次数; ◆项目团队有11个开发人员，两个设计，两个系统管理员; 商业模式 该网站采用免费增值模式，用户可以免费使用下面任何服务： ◆搜索其他用户; ◆给好友发送消息; ◆上载图片和视频; ◆寻找好友; ◆视频聊天; ◆更多… 但如果用户想享受不受限制发送消息和上载图片，那么就得根据需要支付不同类型的会员服务，视频聊天及网站其他服务也采用同样的策略。 工具箱 Nginx Poppen.de 所有的服务都是基于Nginx服务上的。前端有两台Nginx服务器在高峰期提供每分钟15万次请求的负载，每个机器已经有四年寿命，并且只有一个CPU 和3GB RAM。Poppen.de拥有三台独立的图像服务器，由三台Nginx服务器为*.bilder.poppen.de提供每分钟8万次请求服务。 Nginx 架构中一个很酷的设计就是有很多请求是由Memcached处理的，因此请求从缓存中获取内容而不需要直接访问PHP机器。比如，用户信息页（user profile）是网站需要密集处理的内容，如果把用户信息页全部缓存到Memcached上，那么请求直接从Memcached上获取内容。 Poppen.de的Memcached每分钟可以处理8000次请求。 架构中有三个Nginx图像服务器提供本地图像缓存，用户上载图 像到一个中央文件服务器。当向这三个Nginx之一中请求图像时，如果服务器本地中没有存在该图像，则从中央文件服务器下载到该服务器上作缓存并提供服 务。这种负载均衡的分布式图像服务器架构设计可以减轻主要存储设备的负载。 PHP-FPM 该网站运行在PHP- FPM上。共有28台双CPU、6GB内存的PHP机器，每个机器上运行100个PHP-FPM的工作线程。使用启用了APC的PHP5.3.x。 PHP5.3可以降低CPU和内存使用率的30%以上。 程序代码是基于Symfony1.2框架之上开发的。一是可以使用外部资源，二是 能够提高项目开发进度，同时在一个著名的框架上可以让新开发人员更容易加入到团队中来。虽然没有任何事情都是十全十美的，但可以从Symfony框架中得 到很多好处，让团队可以更多的精力放在Poppen.de的业务开发上去。 网站性能优化使用XHProf，这是Facebook开源出来的一个类库。这个框架非常容易个性化和配置，能够可以缓存大部分高代价的服务器计算。 MySQL MySQL是网站 主要的RDBMS。网站又几个MySql服务器：一台4CPU、32GB的服务器存储用户相关信息，如基本信息、照片描述信息等。这台机器已经使用了4 年，下一步计划会使用共享集群来替换它。目前仍基于这个系统上进行设计，以简化数据访问代码。根据用户ID进行数据分区，因为网站中大部分信息都是以用户 为中心的，如照片、视频、消息等。 有三台服务器按主-从-从配置架构提供用户论坛服务。一台从服务器负责网站自定义消息存储，到现在有 2.5亿条消息。另外四台机器为主-从配置关系。另外由4台机器配置成NDB族群专门服务于密集型写操作数据，如用户访问统计信息。 数据表设计尽量避免关联操作，尽可能缓存最多的数据。当然，数据库的结构化规范已经完全被破坏掉了。因此，为了更容易搜索，数据库设计创建了数据挖掘表。大部分表是MyISAM型表，可以提供快速查找。现在的问题是越来越多的表已经全表锁住了。Poppen.de正考虑往XtraDB存储引擎上迁移。 Memcached 网站架构中Memcached应用相当多，超过45GB的高速缓存和51个节点。缓存了Session会话、视图缓存以及函数执行缓存等。架构中有一个系统 当记录被修改时可以自动地把数据更新到缓存中去。未来改善缓存更新的可能方案是使用新的Redis Hash API或者MongoDB。 RabbitMQ 在 2009年中开始在架构中使用RabbitMQ。这是一个很好的消息解决方案，便于部署和集中到这个架构中去，在LVS后运行了两台RabbitMQ服务 [...]]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/06/16/%e3%80%90%e8%bd%ac%e3%80%91php%e6%90%ad%e5%bb%ba%e7%99%be%e4%b8%87%e7%ba%a7%e7%bd%91%e7%ab%99%e6%9e%b6%e6%9e%84%e6%8a%80%e6%9c%af%e6%8f%ad%e7%a7%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql sql 排序优先级</title>
		<link>http://blog.qk31.com/2011/05/12/mysql-sql-%e6%8e%92%e5%ba%8f%e4%bc%98%e5%85%88%e7%ba%a7/</link>
		<comments>http://blog.qk31.com/2011/05/12/mysql-sql-%e6%8e%92%e5%ba%8f%e4%bc%98%e5%85%88%e7%ba%a7/#comments</comments>
		<pubDate>Wed, 11 May 2011 16:39:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=712</guid>
		<description><![CDATA[ORDER BY (case when g.cat_id=8 then 1 when g.cat_id IN (&#8217;8&#8242;) then 2 else 3 end) 满足第一个条件排前面，接着满足第二个条件排第二，剩下排第三]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/05/12/mysql-sql-%e6%8e%92%e5%ba%8f%e4%bc%98%e5%85%88%e7%ba%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript 删除图标标签</title>
		<link>http://blog.qk31.com/2011/03/07/javascript-%e5%88%a0%e9%99%a4%e5%9b%be%e6%a0%87%e6%a0%87%e7%ad%be/</link>
		<comments>http://blog.qk31.com/2011/03/07/javascript-%e5%88%a0%e9%99%a4%e5%9b%be%e6%a0%87%e6%a0%87%e7%ad%be/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 16:34:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[特效]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=709</guid>
		<description><![CDATA[.replace(/&#60;img(.*?)src=\&#8221;(.*?)\&#8221;(.*?)&#62;/i,&#8221;);]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/03/07/javascript-%e5%88%a0%e9%99%a4%e5%9b%be%e6%a0%87%e6%a0%87%e7%ad%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ecshop smarty 变量嵌套解决方法</title>
		<link>http://blog.qk31.com/2011/03/01/ecshop-smarty-%e5%8f%98%e9%87%8f%e5%b5%8c%e5%a5%97%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/</link>
		<comments>http://blog.qk31.com/2011/03/01/ecshop-smarty-%e5%8f%98%e9%87%8f%e5%b5%8c%e5%a5%97%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 15:06:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ecshop]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=706</guid>
		<description><![CDATA[在include/lib_insert.php 增加一个insert函数，是叠加变量通过这个insert组合起来 function insert_adsCat($arr) { return $arr['cats_config']['cat_list'][$arr['id']][$arr['need']]; } 在模板调用 {insert name=&#8217;adsCat&#8217; id=$rec_data['cat_id'] cats_config=$cats_config need=&#8217;url&#8217;} 把你需要组合的数组里面字段通过参数形式传给lib_insert.php组合]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/03/01/ecshop-smarty-%e5%8f%98%e9%87%8f%e5%b5%8c%e5%a5%97%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii 上传扩展 upload extensions</title>
		<link>http://blog.qk31.com/2011/02/15/yii-%e4%b8%8a%e4%bc%a0%e6%89%a9%e5%b1%95-upload-extensions/</link>
		<comments>http://blog.qk31.com/2011/02/15/yii-%e4%b8%8a%e4%bc%a0%e6%89%a9%e5%b1%95-upload-extensions/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 07:16:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=703</guid>
		<description><![CDATA[下载地址 http://www.yiiframework.com/extension/upload 文档 http://www.verot.net/php_class_upload_docs.htm class.upload.php documentation Description Description &#124; Vars (details) &#124; Methods (details) What does it do? It manages file uploads for you. In short, it manages the uploaded file, and allows you to do whatever you want with the file, especially if it is an image, and as many times as you want. It is the [...]]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/02/15/yii-%e4%b8%8a%e4%bc%a0%e6%89%a9%e5%b1%95-upload-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii 支持 参数 验证 rules 详解 表单</title>
		<link>http://blog.qk31.com/2011/02/01/yii-%e6%94%af%e6%8c%81-%e5%8f%82%e6%95%b0-%e9%aa%8c%e8%af%81-rules-%e8%af%a6%e8%a7%a3-%e8%a1%a8%e5%8d%95/</link>
		<comments>http://blog.qk31.com/2011/02/01/yii-%e6%94%af%e6%8c%81-%e5%8f%82%e6%95%b0-%e9%aa%8c%e8%af%81-rules-%e8%af%a6%e8%a7%a3-%e8%a1%a8%e5%8d%95/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 19:56:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=701</guid>
		<description><![CDATA[?boolean: Alias of CBooleanValidator, 只有true和 false ?captcha: Alias of CCaptchaValidator, 验证码验证 ?compare: Alias of CCompareValidator, 对比表单里面的属性或者常量 ?email: Alias of CEmailValidator, 确认是个正确的e-mail 地址 ?default: Alias of CDefaultVAlidator, 按照默认值设置 ?exist: Alias of CExistValidator, 确定可以从表的字段里面找到in the specified table column ?file: Alias of CFileValidator, 确定属性包括上传文件名an uploaded file，简单说就是确认有上传文件 ?filter: Alias of CFilterValidator, transforming the attribute with a filter ?in: Alias [...]]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/02/01/yii-%e6%94%af%e6%8c%81-%e5%8f%82%e6%95%b0-%e9%aa%8c%e8%af%81-rules-%e8%af%a6%e8%a7%a3-%e8%a1%a8%e5%8d%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii 里面 gii 设置 modules 模块里面的model，以及各种配置图解</title>
		<link>http://blog.qk31.com/2011/02/01/yii/</link>
		<comments>http://blog.qk31.com/2011/02/01/yii/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 19:31:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=695</guid>
		<description><![CDATA[yii 里面 gii 设置 modules 模块里面的model，以及各种配置图解]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/02/01/yii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php PEAR install 安装问题</title>
		<link>http://blog.qk31.com/2011/02/01/php-pear-install-%e5%ae%89%e8%a3%85%e9%97%ae%e9%a2%98/</link>
		<comments>http://blog.qk31.com/2011/02/01/php-pear-install-%e5%ae%89%e8%a3%85%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 18:59:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=690</guid>
		<description><![CDATA[在执行 C:\&#62;cd wamp\bin\php\php5.2.5 C:\wamp\bin\php\php5.2.5&#62;go-pear.bat 会出现下面错误 phar “[path]go-pear.phar” does not have a signature Warning: require_once(phar://go-pear.phar/index.php): failed to open stream: pha r “[path]go-pear.phar” does not have a signature in [path]\PEAR\go-pear.phar on line 1236 Fatal error: require_once(): Failed opening required ‘phar://go-pear.phar/index. php’ (include_path=’.;[path][path]\PEAR’) in [path]\PEAR\go-pear.phar on line 1236 解决方法： 进入：cd PEAR目录 然后执行：php.exe -d phar.require_hash=0 go-pear.phar 这样就可以顺利执行]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/02/01/php-pear-install-%e5%ae%89%e8%a3%85%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii 联动菜单 dropDownList</title>
		<link>http://blog.qk31.com/2011/01/18/yii-%e8%81%94%e5%8a%a8%e8%8f%9c%e5%8d%95-dropdownlist/</link>
		<comments>http://blog.qk31.com/2011/01/18/yii-%e8%81%94%e5%8a%a8%e8%8f%9c%e5%8d%95-dropdownlist/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 17:37:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=679</guid>
		<description><![CDATA[1在view里面调用 //上面菜单变动后这个菜单根据变化 这个是php代码部分]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/01/18/yii-%e8%81%94%e5%8a%a8%e8%8f%9c%e5%8d%95-dropdownlist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii::下来菜单，默认选择值&#8221;selected&#8221;</title>
		<link>http://blog.qk31.com/2011/01/17/yii%e4%b8%8b%e6%9d%a5%e8%8f%9c%e5%8d%95%ef%bc%8c%e9%bb%98%e8%ae%a4%e9%80%89%e6%8b%a9%e5%80%bcselected/</link>
		<comments>http://blog.qk31.com/2011/01/17/yii%e4%b8%8b%e6%9d%a5%e8%8f%9c%e5%8d%95%ef%bc%8c%e9%bb%98%e8%ae%a4%e9%80%89%e6%8b%a9%e5%80%bcselected/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 18:33:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.qk31.com/?p=663</guid>
		<description><![CDATA[下来菜单，默认选择值&#8221;selected&#8221; $form->dropDownList($model,'sex',array('1'=>'men','2'=>'women')); 例如: < select name="sex"> < option value="1">men < option value="2" selected="selected">women 操作方法 $form->dropDownList($model,'sex',array('1'=>'men','2'=>'women'), array('options' => array('2'=>array('selected'=>true))));]]></description>
		<wfw:commentRss>http://blog.qk31.com/2011/01/17/yii%e4%b8%8b%e6%9d%a5%e8%8f%9c%e5%8d%95%ef%bc%8c%e9%bb%98%e8%ae%a4%e9%80%89%e6%8b%a9%e5%80%bcselected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

