September 24, 2008
[教程]memcached for win32的安装
"\u003cp\u003ememcached是由livejournal团队(danga.com)制作的开源缓存软件,是缓存机制的一种实现,用它之所以高效,是因为它是利用了内存,使用好了能够大大加快页面或者是其它程序的执行速度。要注意的是一旦服务器停止,内存中的缓存数据会被清空。\u003c/p\u003e\n\u003cp\u003ewin32下,需要启动memcached服务,首先下载相关的memcached文件(用于启动服务的windows.rar在附件中),解压后可以自己选择,这里我选择的是2.1版本的,将其中的memcached.exe和memcached.ini(里面也就这俩文件)拷贝到某路径下(如:E:javamemcached2.1),然后通过cmd命令窗口,先转入到该路径,然后按如下步骤输入:\u003c/p\u003e\n\u003cp\u003e1、memcached.exe -d install\u003c/p\u003e\n\u003cp\u003e2、memcached.exe -d start\u003c/p\u003e\n\u003cp\u003e这里第一步是用于安装服务,第二步是用于启动服务,有些默认参数的值是通过memcached.ini里的相关元素的设置值而定的。\u003c/p\u003e\n\u003cp\u003e如果要停止服务和卸载服务可以用入下命令:\u003c/p\u003e\n\u003cp\u003e3、memcached.exe -d stop 或 memcached.exe -d …\u003c/p\u003e"
September 24, 2008
Windows下的Memcache安装
"\u003ch2 id=\"windows下的memcache安装\"\u003eWindows下的Memcache安装\u003c/h2\u003e\n\u003cp\u003e不用说了,这便是 \u003ca href=\"http://www.oschina.net/project/355\"\u003ememcached\u003c/a\u003e 在Windows系统下的版本。\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2008/09/memcached_win.zip\"\u003e(点击这里下载memcached for win32)\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWindows下的Memcache安装\u003c/strong\u003e:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e下载 \u003ca href=\"http://jehiah.cz/projects/memcached-win32\"\u003ememcache\u003c/a\u003e 的windows稳定版,解压放某个盘下面,比如在c:\\memcached\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e在终端(也即cmd命令界面)下输入 ‘c:\\memcached\\memcached.exe -d install’ 安装\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e再输入: ‘c:\\memcached\\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e4.下载 \u003ca href=\"http://pecl4win.php.net/list.php\"\u003ephp_memcache.dll\u003c/a\u003e,请自己查找对应的php版本的文件\u003c/p\u003e\n\u003col start=\"5\"\u003e\n\u003cli\u003e在C:\\windows\\php.ini 加入一行 ‘extension=php_memcache.dll’\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!\u003c/p\u003e\n\u003cp\u003e7.如果要卸载的话,可以执 …\u003c/p\u003e"
September 24, 2008
memcached与memcache的区别
"\u003cp\u003ememcached 像是一个后台服务器(也有客户端的memcached),memcache是php的一个模块,需要编译,像是一个客户端,memcached 和 memcache 是紧密结合的两个东西。\u003c/p\u003e\n\u003cp\u003e另外memcached也是一个客户端的.这点可以参考php手册得知.两者的区别也可以参考:\u003c/p\u003e\n\u003cp\u003e有关linux下memcache和memcached的安装方法请参考:\u003c/p\u003e\n\u003cp\u003e================================\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e说法一:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e两个不同版本的php的memcached的客户端\u003c/p\u003e\n\u003cp\u003enew memcache是pecl扩展库版本\nnew memcached是libmemcached版本\n功能差不多.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e说法二:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMemcache是什么?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMemcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。\n它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。\nMemcached是简单而强大的。它简单的设计促进迅速部署,易于发展 …\u003c/p\u003e"
September 24, 2008
memcached配置
"\u003cp\u003e\u003cstrong\u003e一、memcached 简介\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在很多场合,我们都会听到 \u003ca href=\"http://www.danga.com/memcached/\"\u003ememcached\u003c/a\u003e 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二、memcached 安装\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 \u003ca href=\"http://www.danga.com/memcached/dist/memcached-1.1.12.tar.gz\"\u003ememcached-1.1.12.tar.gz\u003c/a\u003e。除此之外,memcached 用到了 \u003ca href=\"http://monkey.org/~provos/libevent/\"\u003elibevent\u003c/a\u003e,我\u003ca href=\"http://monkey.org/~provos/libevent-1.1a.tar.gz\"\u003e下载的是 libevent-1.1a.tar.gz\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e接下来是分别将 libevent-1.1a.tar.gz 和 memcached-1.1.12.tar.gz 解开包、编译、安装:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# tar -xzf libevent-1.1a.tar.gz\n# cd libevent-1.1a\n# ./configure --prefix=/usr\n# make\n# make install\n# cd ..\n# tar -xzf memcached-1.1.12.tar.gz\n# cd …\u003c/code\u003e\u003c/pre\u003e"
May 20, 2008
FCKEditor——添加自定义工具栏
"\u003cp\u003e FCKEditor是一个功能强大的开源在线编辑器,所以是非常适合我等兜兜无啥银子的人拿来“把玩”的~~~呵呵。一个产品即使功能再强大也不能满足所有用户的需求,当然FCKEditor也不例外咯。就拿我现在所开发的一个系统(工作流)来说,就遇到了FCKEditor不能满足我的要求的情况。因为我想在工具栏中加入自己的操作控制按钮,配置当然搞不定咯,就只有改源代码了。可一看FCKEditor经过处理后的JS源码,头立刻就大了——无换行无注释,一大堆JS代码堆在那里,想看懂几乎没门。当然它这样做也是有好处的,要不这大的一个东西加载怎么会那么快呢。看不懂处理后的JS源码,我们可以看有格式的源码嘛,所以就上网down了一个2.4的FCKEditor。好了,现在就让我们开始怎么一步一步的加入我们自己的操作菜单到工具栏中去。\u003c/p\u003e\n\u003cp\u003e 比如我想加一个我自己的输入框用来控制日期的输入,即该输入框只能通过选择来选择日期,这个我们结合日期控件my97来做,呵呵,充分利用已有的成果。有人会说,我直接改它的对话框不就得了,当然这也是可以的,可我们今天要做的就是如何加入自己的工具栏操作,这样以后就可以依次类推, …\u003c/p\u003e"
May 1, 2008
ADODB详解
"\u003cp\u003eADODB参考手册:\u003c/p\u003e\n\u003cp\u003ePHP在数据库的支持上是很令人称道的,几乎所有的知名数据库系统都有对应的函数库支持,而且支持得很完整。但遗憾的是,每一群数据库支持函数无论在名称或参数结构上,都有很大的差异,这使得PHP的系统开发者在面临更换数据库时,总会觉得痛苦万分。\u003c/p\u003e\n\u003cp\u003e难道这个问题就没有解决方法吗?当然有,答案就是将要介绍的ADODB这个PHP类库。\u003c/p\u003e\n\u003cp\u003eADODB提供了完整的方法和属性,可以用来控制数据库系统,更棒的是你只要记得它的功能即可,因为不同的数据库系统,只要修改一个属性值,ADODB就会自动依据设定取用正确的PHP函数。\u003c/p\u003e\n\u003cp\u003e此外,再配合数据库系统修改SQL命令,这样PHP系统就可以在最短的时间内更换到另一个数据库系统;如果在编写程序时,对SQL命令能做妥善规划,那就更快了。\u003c/p\u003e\n\u003cp\u003e经过以上的介绍,相信你已经对ADODB的功用有所了解了,以下为ADODB的详细介绍。\u003c/p\u003e\n\u003cp\u003e下载ADODB:可以在http://adodb.sourceforge.net/ 取得最新版的ADODB(见图17-2)。\u003c/p\u003e\n\u003cp\u003e图17-2\u003c/p\u003e\n\u003cp\u003eADODB的最新版本是adodb495a版,根据需要,可以下载完整版本的ADODB。如果您主要使 …\u003c/p\u003e"
April 12, 2008
说说大型高并发高负载网站的系统架构
"\u003cp\u003e 原文链接:(俊麟 Michael’s blog ) \u003ca href=\"http://www.toplee.com/blog/71.html\"\u003ehttp://www.toplee.com/blog/71.html\u003c/a\u003e\n 注:原文链接后的相关评论也很精彩,建议也参考一下原文链接后的评论。\u003c/p\u003e\n\u003cp\u003e 我在CERNET做过拨号接入平台的搭建,而后在Yahoo\u0026amp;3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。\u003c/p\u003e\n\u003cp\u003e 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。\u003c/p\u003e\n\u003cp\u003e 大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集 …\u003c/p\u003e"
March 28, 2008
解决Apache日志文件ACCESS.LOG日益膨胀的一个办法:
"\u003cp\u003e将httpd.conf中CustomLog logs/access.log common 改成\u003c/p\u003e\n\u003cp\u003eCustomLog “|c:/apache/bin/rotatelogs c:/apache/logs/%Y_%m_%d.access.log 86400 480” common\u003c/p\u003e\n\u003cp\u003e重启Apache\u003c/p\u003e\n\u003cp\u003e其中c:/apache/是你安装apache的路径\n这样每一天生成一个日志文件\u003c/p\u003e"
March 25, 2008
使用mysql的replace函数替换字符串
"\u003cp\u003e一直以为只有mysql才有replace这个方法,后来一查,sql server居然也有,看来自己真是无知啊。。。。\u003c/p\u003e\n\u003cp\u003e比如你要将 表 tb1里面的 f1字段的abc替换为def\u003c/p\u003e\n\u003cp\u003eUpdate tb1 SET f1=REPLACE(f1, ‘abc’, ‘def’);\u003c/p\u003e\n\u003cp\u003eREPLACE(str,from_str,to_str)\n在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:\nmysql\u0026gt; Select REPLACE(‘www.mysql.com’, ‘w’, ‘Ww’);\n -\u0026gt; ‘WwWwWw.mysql.com’\n这个函数是多字节安全的。\u003c/p\u003e\n\u003cp\u003e示例:\nUpdate `dede_addonarticle` SET body = REPLACE ( body,\n ‘’,\n ” );\nUpdate `dede_addonarticle` SET body = REPLACE ( body,\n ‘’,\n ” );\nUpdate …\u003c/p\u003e"
March 10, 2008
清除缓存,php,html,jsp,asp中防止模式窗口页面不更新的情况
"\u003cp\u003e清除缓存,php,html,jsp,asp中防止页面不更新的情况\nCode:\u003c/p\u003e\n\u003cp\u003eHTML\u003c/p\u003e\n\u003cp\u003eASP\u003c/p\u003e\n\u003cp\u003e\u0026lt;%\u003c/p\u003e\n\u003cp\u003eResponse.Expires = -1\u003c/p\u003e\n\u003cp\u003eResponse.ExpiresAbsolute = Now() – 1\u003c/p\u003e\n\u003cp\u003eResponse.cachecontrol = “no-cache”\u003c/p\u003e\n\u003cp\u003e%\u0026gt;\u003c/p\u003e\n\u003cp\u003ePHP\u003c/p\u003e\n\u003cp\u003eheader(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);\u003c/p\u003e\n\u003cp\u003eheader(“Cache-Control: no-cache, must-revalidate”);\u003c/p\u003e\n\u003cp\u003eheader(“Pragma: no-cache”);\u003c/p\u003e\n\u003cp\u003eJSP\u003c/p\u003e\n\u003cp\u003eresponse.setHeader(“Pragma”,”No-Cache”);\u003c/p\u003e\n\u003cp\u003eresponse.setHeader(“Cache-Control”,”No-Cache”);\u003c/p\u003e\n\u003cp\u003eresponse.setDateHeader(“Expires”, 0);\u003c/p\u003e"
March 4, 2008
用3389连接远程服务器出现“没有终端许可证”
"\u003cp\u003e 用过windows server 2003做服务器的人都知道 windows2003的性能安全性比以前的windows版本高出很多,但是也带来很多麻烦。其中服务器最重要的远程管理“终端服务”居然要求授权,要许可证,否则120天过期。其实这个问题很好解决按照一下方法就可以。\u003c/p\u003e\n\u003cp\u003e操作步骤:\u003c/p\u003e\n\u003cp\u003e1,如果你服务器上已经开着终端服务,控制面板→添加删除程序→添加/删除windows组件→删除终端服务和终端授权服务。\u003c/p\u003e\n\u003cp\u003e这个时候回提示你重新启动计算机,请千万记住一定要点“否”,否则就麻烦了。\u003c/p\u003e\n\u003cp\u003e2、点我的电脑属性→远程→远程桌面→在启用这台计算机的远程桌面上打对勾→之后会得到提示,点确定就行→应用。\u003c/p\u003e\n\u003cp\u003e3、重新启动计算机大功搞成,不用任何破解软件,轻松加愉快。\u003c/p\u003e\n\u003cp\u003e其实这个服务在WINDOWS2003安装完就有,大家可以注意2003在添加/删除服务的时候经常不用从安装盘的I386里读东西,嘿嘿…………\u003c/p\u003e"
March 4, 2008
MySQL索引分析和优化:
"\u003cp\u003e本文主要讲述了如何加速动态网站的\u003ca href=\"http://www.phpchina.com/viewnews_11670.html\"\u003eMySQL\u003c/a\u003e索引分析和优化。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、什么是索引?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。\u003c/p\u003e\n\u003cp\u003e假设我们创建了一个名为people的表:\u003c/p\u003e\n\u003cp\u003eCreate TABLE people ( peopleid SMALLINT NOT NULL,\u003c/p\u003e\n\u003cp\u003ename CHAR(50) NOT NULL );\u003c/p\u003e\n\u003cp\u003e然后,我们完全随机把1000个不同name值插入到people表。在数据文件中name列没有任何明确的次序。如果我们创建了name列的索引,MySQL将在索引中排序name列,对于索引中的每一项,MySQL在内部为它保存一个数据文件中实际记录所在位置的“指针”。因此,如果我们要查找name等于“Mike”记录 …\u003c/p\u003e"
March 4, 2008
mysql数据类型
"\u003cp\u003e\u003cstrong\u003e1. mysql的数据类型\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在mysql中有如下几种数据类型:\u003c/p\u003e\n\u003cp\u003e(1)数值型\u003c/p\u003e\n\u003cp\u003e数值是诸如32 或153.4 这样的值。mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24e12 不是合法的,因为指数前的符号未给出。\u003c/p\u003e\n\u003cp\u003e浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。\u003c/p\u003e\n\u003cp\u003e数值前可放一个负号“-”以表示负值。\u003c/p\u003e\n\u003cp\u003e(2)字符(串)型\u003c/p\u003e\n\u003cp\u003e字符型(也叫字符串型,简称串)是诸如“hello, world!”或“一个馒头引起的血案”这样的值,或者是电话号码87398413这样的值。既可用单引号也可用双引号将串值括起来。\u003c/p\u003e\n\u003cp\u003e初学者往往分不清数值87398143和字符串87398143的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的87398143是要参与计算的,比如它是金融中的一个货款总额;而字符型的87398143是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与 …\u003c/p\u003e"
March 1, 2008
mootools 教程
"\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emootools【一】- 起步篇\n以前一直在用prototype.js,最近发现了mootools,据说也相当不错,它是个纯OO的javascript 框架,所以拿来学习学习,把学习经过记录下来。\n粗略看了下,mootools很貌似prototype,所以用过prototype框架的人应该很容易上手的。\nmootools提供的功能高度模块化,可以根据实际需要来裁剪。\n它的核心库是Moo.js和Utility.js,Moo.js里包含了实现OO的基础类,Utility.js提供了最常用的工具函数的封装。\n---------------------------Moo.js-------------------------------------\nprototype.js里提供了如下形式来创建我们的对象:\nvar Cat = Class.create();\nPerson.prototype = {\ninitialize: function(name){\nthis.name = name;\n}\n};\nvar cat = new Cat (\u0026#39;kitty\u0026#39;); …\u003c/code\u003e\u003c/pre\u003e"
March 1, 2008
mootools基本XMLHttpRequest的包装类
"\u003ch1 id=\"top-xhrjs\"\u003e\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#MainTopic\"\u003etop\u003c/a\u003e XHR.js\u003c/h1\u003e\n\u003cp\u003e包含了基本的 XMLHttpRequest 类的包装〿\u003c/p\u003e\n\u003ch4 id=\"license\"\u003eLicense\u003c/h4\u003e\n\u003cp\u003eMIT-style license.\u003c/p\u003e\n\u003cp\u003e概要\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR.js\"\u003eXHR.js\u003c/a\u003e\n包含了基本的 XMLHttpRequest 类的包装〿\n\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR\"\u003eXHR\u003c/a\u003e\n基本皿XMLHttpRequest的包装类\n\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR.Properties\"\u003e属怿/a\u0026gt;\u003c/a\u003e\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR.setHeader\"\u003esetHeader\u003c/a\u003e\n添加/修改请求的Header\n\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR.send\"\u003esend\u003c/a\u003e\n打开XMLHttpRequest连接并发送数捿/td\u0026gt;\n\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#XHR.cancel\"\u003ecancel\u003c/a\u003e\n取消正在执行的请汿\u003c/p\u003e\n\u003ch2 id=\"top-xhr\"\u003e\u003ca href=\"http://www.seoeye.org/mootools/XHR.htm#MainTopic\"\u003etop\u003c/a\u003e XHR\u003c/h2\u003e\n\u003cp\u003e基本皿XMLHttpRequest的包装类\u003c/p\u003e\n\u003ch4 id=\"参数\"\u003e参数\u003c/h4\u003e\n\u003cp\u003eoptions\u003c/p\u003e\n\u003cp\u003e一个请求的配置对象。参考下面的可选项\u003c/p\u003e\n\u003ch4 id=\"可选项\"\u003e可选项\u003c/h4\u003e\n\u003cp\u003emethod\u003c/p\u003e\n\u003cp\u003e’post’ 房‘get’ – 请求的协访 可选,默认丿lsquo;post’.\u003c/p\u003e\n\u003cp\u003easync\u003c/p\u003e\n\u003cp\u003e是否是异步。默认为true.\u003c/p\u003e\n\u003cp\u003eencoding\u003c/p\u003e\n\u003cp\u003e数据编码。默认为utf-8.\u003c/p\u003e\n\u003cp\u003eautoCancel\u003c/p\u003e\n\u003cp\u003e自动取消前一个正在执行的请求。默认为false.\u003c/p\u003e\n\u003cp\u003eheaders\u003c/p\u003e\n\u003cp\u003e一个请求头的配置对豿\u003c/p\u003e\n\u003ch4 id=\"事件\"\u003e事件\u003c/h4\u003e\n\u003cp\u003eonRequest\u003c/p\u003e\n\u003cp\u003e请求发送时触发\u003c/p\u003e\n\u003cp\u003eonSuccess\u003c/p\u003e\n\u003cp\u003e请求完成时触叿\u003c/p\u003e\n\u003cp\u003eonStateChange\u003c/p\u003e\n\u003cp\u003eXMLHttpRequest状态发生改 …\u003c/p\u003e"