April 1, 2010
百度、新浪、Mixi、Apache社区赞助的开源 key-value分布式存储系统[原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2009.01.21 转载请注明原文链接: http://blog.s135.com/post/394/]\nkey-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。如果辅以Real- Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数 量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。而MySQL,在几百个并发连接下,就基本上崩溃了。\n虽然key-value分布式存储具有极高的性能,但是只能做类似于MySQL的SELECT * FROM table WHERE id = 123;简单主键查询。\n“搜索索引引擎+key-value分布式存储”能够实现高并发的复杂条件查询、全文检索与数据显示。但是, 由于索引更新需要时间,目前还不能实现完全意义上的Real-Time …"
April 1, 2010
使用Nginx的proxy_cache缓存功能取代Squid[转载]
"[文章作者:张宴 本文版本:v1.2 最后修改:2009.01.12 转载请注明原文链接: http://blog.s135.com/nginx_cache/]\nNginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以 它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx 模块,可以清除指定URL的缓存。\nNginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache 相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。\n最新的Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定 URL的缓存), …"
April 1, 2010
《Squid中文权威手册》
"Squid是一个缓存Internet数据的高性能代理服务器软件。当一个用户想要访问一个网页或下载一个文件时,会首先向Squid发出访问请求, 由Squid代替其进行网页或文件下载,Squid在把该网页或文件传给用户的同时会在本机保留一个缓存备份。当别的用户访问同样的网页时,Squid会 把保存的网页备份立即传给用户,使用户觉得速度相当快,同时也降低了后端数据来源Web服务器的压力。Squid可以代理HTTP、FTP、 GOPHER、SSL和WAIS协议,暂不能代理POP3、NNTP等协议。Squid可以工作在很多操作系统中,如AIX、Digital、Unix、 FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。\n目前 Squid已经在新浪、搜狐、网易、腾讯等各大门户网站广泛使用,成为必不可少的服务器软件之一。\n《Squid中文权威手册》由 Squid创始人 Duane Wessels 所著的英文版《Squid: The Definitive Guide》翻译而来,其译者曾在新浪、网易工作过。\n在线版: …"
March 31, 2010
jquery.validate.js简介
"参看: http://docs.jquery.com/Plugins/Validation 并整理\njquery.validate.js是jquery旗下的一个验证框架 http://bassistance.de/jquery-plugins/jquery-plugin-validation/,借助jquery的优势,我们可以迅速验证一些常见的输入,并且可以自己 扩充自己的验证方法,并且对国际化也有很好的支持.\n使用这个函数很简单,看以下的代码\nHtml代码\n“http://www.w3.org/TR/html4/loose.dtd”\u0026gt; \u0026lt;script src=“http://code.jquery.com/jquery-latest.js” \u0026gt;script\u0026gt; \u0026lt;link rel=“stylesheet”href=“http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.css”type=“text/css”media=“screen”/\u0026gt; \u0026lt;script …"
March 31, 2010
apache下启用二级域名泛解析,实现博客功能
"httpd_vhosts.conf文件内容\nDocumentRoot “d:/site/papake.cn” DirectoryIndex index.htm index.php\nOptions Indexes MultiViews AllowOverride None order allow,deny Allow from all Options FollowSymLinks Includes\nRewriteEngine on RewriteLog logs/re.log RewriteLogLevel 1 RewriteCond %{HTTP_HOST} ^[a-zA-Z0-9-]+.papake.cn$ RewriteCond %{HTTP_HOST} !^(www).papake.cn$ RewriteRule ^/?$ /%{HTTP_HOST} [NC] RewriteRule ^/([a-zA-Z0-9-]+).papake.cn/?$ http://www.papake.cn/$1 [P,L]\nRewriteLog …"
March 27, 2010
PHP安全配置详解
"PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险, 在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。 【 安全模式 】\nPHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运行的PHP打开了安全模 式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。\n[ 使用安全模式来强制限制 ] 在安全模式下,一些尝试访问文 件系统的函数功能将被限制。运行Web服务器用户ID,如果想要操作某个文件,则必须拥有该文件读取或者写入的访问权限,实现这个限制功能对于PHP来说 是没有问题的。\n在 安全模式开启的时候,尝试读取或者写入一个本地文件的时候,PHP将检查当前访问用户是否是该目标文件的所有者。如 果不是所有者,则该操作会被禁止。(写 入权限:在较低级别的文件访问权限下,可能会允许读取或者写入系统操作系统的文件,通过PHP的安全模式实现了防止你操作 另外一个用户文件的操作。当然, 一个Web服务器可能能够访问一个具有全局写入权限的任意文件。)\n当安全模式打开的时候,以下函数列 …"
March 26, 2010
PHP中echo和print的区别
"PHP 和 HTML 最简单的交互是通过 print 和 echo 语句来实现的,在实际使用中, print 和 echo 两者的功能几 乎是完全一样。可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:在 echo 函数中,可以同时输出 多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。\necho 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。\necho命令和print命令相同,没有区别 ; echo函数和print函数有区别; print()有返 回值,当其执行失败(比如断线)时返回flase; printf()和sprintf()类似,均为格式化输出,不同的是前者输出到 标准输出,后者输出到变量。\n他们的区别在于: (1) echo可以输出多个字符串,像下面这样: echo ‘a’,’b’,’c’; 如果你非要加上圆括号,注意写成echo (‘a’,’b’,’c’);是错误的,应该写成: echo …"
March 26, 2010
windows下安装 Xdebug+WinCacheGrind
"以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档): 1. 在 http://www.xdebug.org/download.php 下载适合自己php版本的php_xdebug- 2.0.1-5.1.2.dll【有附件提供下载,如果按照以下步骤完成后 phpinfo任无法显示xdebug,那么建议重新下载其他xdebug.dll文件试试 】; 2. 将下载的xdebug.dll放到php\\ext目录里,可以重命名也可以不重命名,这里我没有重命名。 3. 编辑php.ini,加入下面几行:\nextension=php_xdebug-2.0.1-5.1.2.dll\n;xdebug配置 [Xdebug] ;开启自动跟踪 xdebug.auto_trace = On ;开启异常跟踪 xdebug.show_exception_trace = On ;开启远程调试自动启动 xdebug.remote_autostart = On ;开启远程调试 xdebug.remote_enable = On ;收集变量 xdebug.collect_vars = On ; …"
March 26, 2010
启用Xdebug使用WinCacheGrind分析脚本执行时间
"使用Xdebug调试和优化PHP程序系列教程之WinCacheGrind,教你如何利用Xdebug 配合WinCacheGrind工具来检测PHP代码的效率以及分析PHP代码。\n另外还有一个结果分析展示工具webgrind。可参考: http://blog.sina.com.cn/s/blog_635833b3010127q5.html\n有时候代码没有明显的编写错误,没有显示任何错误信息(如 error、warning、notice等),但是这不表明代码就是正确无误的。有时候可能某段代码执行时间过长,占用内存过多以致于影响整个系统的效 率,我们没有办法直接看出来是哪部份代码出了问题。这时候我们希望把代码的每个阶段的运行情况都监控起来,写到日志文件中去,运行一段时间后再进行分析, 找到问题所在。\n回忆一下,之前我们编辑php.ini文件 加入\n[Xdebug]\u0026lt;br /\u0026gt; xdebug.profiler_enable=on\u0026lt;br /\u0026gt; xdebug.trace_output_dir=\u0026quot;I:\\Projects\\xdebug\u0026quot;\u0026lt;br …"
March 26, 2010
mysql显示SQL语句执行时间
"查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler\nMySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.\n於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等.\nMySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler (2007.04.05 發表)\n效能分析主要分下述三種(轉載自上篇):\nBottleneck analysis – focuses on answering the questions: What is my database server waiting on; what is a user connection waiting on; what is a piece of …"