April 1, 2010
我所熟悉的网站负载均衡技术[原创]
"\u003cp\u003e\u003cstrong\u003eDNS轮循\u003c/strong\u003e\nDNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显 的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算 机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器 多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eF5 BIG-IP\u003c/strong\u003e\n\u003ca href=\"http://blog.s135.com/attachment/200711/f5-big-ip.jpg\"\u003e\u003cimg src=\"http://blog.s135.com/attachment/200711/f5-big-ip.jpg\" alt=\"点击在新窗口中浏览此图片\"\u003e\u003c/a\u003e 简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。\n价格:BIG-IP 6400的价格在16万元人民币左右。\n网址: \u003ca href=\"http://www.f5.com.cn/\"\u003ehttp://www.f5.com.cn/\u003c/a\u003e(中国) \u003ca href=\"http://www.f5.com/\"\u003ehttp://www.f5.com/\u003c/a\u003e(全球)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLVS(Linux Virtual Server)\u003c/strong\u003e\n简介:软件四层交换。LVS是在Linux内核中 作四层交换,只花128个字节记录一个连 …\u003c/p\u003e"
April 1, 2010
Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2008.06.25 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/read.php/354.htm\"\u003ehttp://blog.s135.com/read.php/354.htm\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程 序以shell和PHP程序编写,以下为主要框架与部分代码:\u003c/p\u003e\n\u003cp\u003e一、系统监控接口程序(interface.php)具有的报警方式\n1、MSN实时报警\n①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.s135.com/attachment/200806/server_monitor1.png\"\u003e\u003cimg src=\"http://blog.s135.com/attachment/200806/server_monitor1.png\" alt=\"点击在新窗口中浏览此图片\"\u003e\u003c/a\u003e\u003ca href=\"http://blog.s135.com/attachment/200806/server_monitor2.png\"\u003e\u003cimg src=\"http://blog.s135.com/attachment/200806/server_monitor2.png\" alt=\"点击在新窗口中浏览此图片\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e发送MSN短消息用了一个PHP类: \u003ca href=\"http://www.fanatic.net.nz/2005/02/15/send-a-message-using-php/\"\u003esendMsg\u003c/a\u003e,使用该PHP类发消息,必须将发送、接收双方的MSN加为联系人,发送中文时,先用iconv 将字符集转为UTF-8:\u003c/p\u003e\n\u003cp\u003e引用\u003c/p\u003e\n\u003cp\u003e$sendMsg-\u0026gt;sendMessage(iconv(“GBK”, “UTF-8”, $message), ‘Times New Roman’, ‘008000’);\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e2、 手机短信报警\n①、工作日早上10点之前,晚上6点之后,以及周六、周日,监控程序检测到故障,会调用手机 …\u003c/p\u003e"
April 1, 2010
采用curl库在PHP程序之间传递数组[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.1 最后修改:2007.08.23 转载请注明出处: \u003ca href=\"http://blog.s135.com/\"\u003ehttp://blog.s135.com\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e最近在工作中遇到一个问题:a.php程序需要将接收到的数据同时写到“线上运行的正式数据库”和“进行开发调试的测试数据库”。而测试数据库可能经常 会面临对表结构、字段、配置信息做调整等问题,很不稳定,发生错误的概率很高,如果用a.php程序同时写“正式数据库”和“测试数据库”,势必影响到线 上运行的正式服务。\u003c/p\u003e\n\u003cp\u003e于是,我想到用PHP curl扩展库将生成的$data数组post传递一份给b.php程序,然后a.php程序继续往下执行写“正式数据库”的代码。a.php程序 将$data数组传递给b.php程序就完事了,至于b.php如何处理,就不关a.php的事了,b.php程序即使写“测试数据库”失败,也不会对 a.php程序造成影响。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/04/curl.gif\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/04/curl.gif\" alt=\"curl\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e按照这种思路,我写了a.php和b.php的代码:\u003c/p\u003e\n\u003cp\u003ea.php程序源代码:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.s135.com/#\"\u003eview plain\u003c/a\u003e \u003ca href=\"http://blog.s135.com/#\"\u003eprint\u003c/a\u003e \u003ca href=\"http://blog.s135.com/#\"\u003e?\u003c/a\u003e\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e$data[“username”]=“张宴”;\u003c/li\u003e\n\u003cli\u003e$data[“password”]=“不知 道”; …\u003c/li\u003e\u003c/ol\u003e"
April 1, 2010
同一域名对应多个IP时,PHP获取远程网页内容的函数 [原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/389/\"\u003ehttp://blog.s135.com/post/389/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003ePHP获取远程网页内容有多种方式,例如用自带的file_get_contents、fopen等函数。\u003c/p\u003e\n\u003cp\u003e引用\u003c/p\u003e\n\u003cp\u003eecho file_get_contents(“ \u003ca href=\"http://blog.s135.com/abc.php%22%29;%C2%A0%C2%A0\"\u003ehttp://blog.s135.com/abc.php”);\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e?\u0026gt;\u003c/p\u003e\n\u003cp\u003e但是,在DNS轮询等负载均衡中,同一域名,可能对应多台服务器,多个IP。假设 blog.s135.com被DNS解析到72.249.146.213、72.249.146.214、72.249.146.215三个IP,用户每 次访问blog.s135.com,系统会根据负载均衡的相应算法访问其中的一台服务器。\u003c/p\u003e\n\u003cp\u003e上周做一个视频项目时,就碰到这样一类需 求:需要依次访问每台服务器上的一个PHP接口程序(假设为abc.php),查询这台服务器的传输状态。\u003c/p\u003e\n\u003cp\u003e这时就不能直接用 file_get_contents访问 \u003ca href=\"http://blog.s135.com/abc.php\"\u003ehttp://blog.s135.com/abc.php\u003c/a\u003e 了,因为它可能一直重复访问某一台服务器。\u003c/p\u003e\n\u003cp\u003e …\u003c/p\u003e"
April 1, 2010
使用Nginx轻松实现开源负载均衡──9 月20日在ChinaUnix技术沙龙上的演讲PPT[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2008.09.21 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/369/\"\u003ehttp://blog.s135.com/post/369/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e9月20日下午,我应邀参加了 \u003ca href=\"http://www.chinaunix.net/\"\u003eChinaUnix\u003c/a\u003e 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙( \u003ca href=\"http://linux.chinaunix.net/bbs/thread-1019366-1-1.html\"\u003ehttp://linux.chinaunix.net/bbs/thread-1019366-1-1.html\u003c/a\u003e), 很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演 讲。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/04/chinaunix.gif\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/04/chinaunix.gif\" alt=\"chinaunix\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePPT分为四个 部分:\u003c/strong\u003e\n1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。\u003c/p\u003e\n\u003cp\u003e2、用实例,来介绍 Nginx负载均衡在大型网站的典型应用。\u003c/p\u003e\n\u003cp\u003e3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负 载均衡做一个对比。\u003c/p\u003e\n\u003cp\u003e①、NetScaler负载均衡交换机动静分离系统架构图\n\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/04/netscaler_lb.png\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/04/netscaler_lb.png\" alt=\"netscaler_lb\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e②、Nginx …\u003c/p\u003e"
April 1, 2010
Nginx 简单的负载均衡配置示例[原创]
"\u003cp\u003e\u003ca href=\"http://www.s135.com/\"\u003ewww.s135.com\u003c/a\u003e 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP。\u003c/p\u003e\n\u003cp\u003e用户访问 \u003ca href=\"http://www.s135.com/\"\u003ehttp://www.s135.com\u003c/a\u003e,将其负载均 衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。\u003c/p\u003e\n\u003cp\u003e用户访问 \u003ca href=\"http://blog.s135.com/\"\u003ehttp://blog.s135.com\u003c/a\u003e, 将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。\u003c/p\u003e\n\u003cp\u003e以下为配置文件nginx.conf:\u003c/p\u003e\n\u003cp\u003e引用\u003c/p\u003e\n\u003cp\u003euser www www;\u003c/p\u003e\n\u003cp\u003eworker_processes 10;\u003c/p\u003e\n\u003cp\u003e#error_log logs/error.log;\u003c/p\u003e\n\u003cp\u003e#error_log logs/error.log notice;\u003c/p\u003e\n\u003cp\u003e#error_log logs/error.log info;\u003c/p\u003e\n\u003cp\u003e#pid logs/nginx.pid;\u003c/p\u003e\n\u003cp\u003e#最大文件描述 符\u003c/p\u003e\n\u003cp\u003eworker_rlimit_nofile 51200;\u003c/p\u003e\n\u003cp\u003eevents\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003euse epoll;\u003c/p\u003e\n\u003cp\u003eworker_connections 51200;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003ehttp\u003c/p\u003e\n\u003cp\u003e{ …\u003c/p\u003e"
April 1, 2010
Nginx+PHP+MySQL双机互备、全自动切换方案 [原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.19 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/379/\"\u003ehttp://blog.s135.com/post/379/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时 间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需 几十秒。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、双机互备、全自动切换方案:\u003c/strong\u003e\n\u003cstrong\u003e1、拓扑图:\u003c/strong\u003e\n\u003ca href=\"http://blog.s135.com/attachment/200811/nginx_php_mysql_ha.png\"\u003e\u003cimg src=\"http://blog.s135.com/attachment/200811/nginx_php_mysql_ha.png\" alt=\"点击在新窗口中浏览此图片\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2、解释:\u003c/strong\u003e\n(1)、假设外网域名blog.s135.com解析到外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214\u003c/p\u003e\n\u003cp\u003e(2)、默认情况 下,由主机绑定内、外网虚拟IP,备机作为备份,当主机的MySQL、Nginx或服务器出现故障无法访问时,备机会自动接管内、外网虚拟IP。两台服务 器都启动负责监控、自动切换虚拟IP的守护进程/usr/bin/nohup /bin/sh …\u003c/p\u003e"
April 1, 2010
修改phpMyAdmin使其能够管理多台远程MySQL 服务器[转载]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.2 最后修改:2007.07.09 转载请注明出处: \u003ca href=\"http://blog.s135.com/\"\u003ehttp://blog.s135.com\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e需 求背景:\nphpMyAdmin是一款不错的MySQL在线管理工具,但phpMyAdmin的cookie登录方式只能输入MySQL数据库 的用户名和密码,而想更改MySQL服务器地址和端口则须修改其配置文件config.default.php。当拥有多台数据库服务器,每台服务器又在 不同端口启动了多个MySQL服务,每次都修改配置文件就显得很麻烦,因此需要能够在登录界面直接输入MySQL服务器地址和端口的功能。\u003c/p\u003e\n\u003cp\u003e功 能要求:\n假设phpMyAdmin的访问网址为 \u003ca href=\"http://192.168.1.25/phpmyadmin/\"\u003ehttp://192.168.1.25/phpmyadmin/\u003c/a\u003e,能够通过输入MySQL服务器地址、端口、 用户名、密码登录远程MySQL服务器,对远程数据库进行管理。\u003c/p\u003e\n\u003cp\u003e修改后的phpMyAdmin登录入口截图:\n\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/04/phpmyadmin2.10_index.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/04/phpmyadmin2.10_index.jpg\" alt=\"phpmyadmin2.10_index\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e下 载地址: \u003ca href=\"http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024\"\u003ehttp://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e实 现步骤:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1、打开“路 …\u003c/strong\u003e\u003c/p\u003e"
April 1, 2010
MySQL数据库服务器在Flickr、Fotolog、 Wkipedia、Facebook等国际知名网站中的使用数量
"\u003cp\u003e2008年4月18日,在Alexa安排的一次“ \u003ca href=\"http://venublog.com/2008/04/16/notes-from-scaling-mysql-up-or-out/\"\u003eScaling MySQL — Up or Out?\u003c/a\u003e”的小组辩论中,MySQL、Sun、 Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们,对其网站MySQL数据库服务器、Web 服务器、缓存服务器的数量,MySQL版本,编程语言类型,操作系统类型等问题进行了回答。 \u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/04/mysql_number.gif\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/04/mysql_number.gif\" alt=\"mysql_number\"\u003e\u003c/a\u003e\u003c/p\u003e"
April 1, 2010
查看Apache并发请求数及其TCP连接状态[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.1 最后修改:2007.07.27 转载请注明出处: \u003ca href=\"http://blog.s135.com/\"\u003ehttp://blog.s135.com\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e这两天搭建了一组Apache服务器,每台服务器4G内存,采用的是prefork模式,一开始设置的连接数太少了,需要较长的时间去响应用户的请求, 后来修改了一下Apache 2.0.59的配置文件httpd.conf:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1 id=\"prefork-mpm\"\u003eprefork MPM\u003c/h1\u003e\n\u003ch1 id=\"startservers-number-of-server-processes-to-start\"\u003eStartServers: number of server processes to start\u003c/h1\u003e\n\u003ch1 id=\"minspareservers-minimum-number-of-server-processes-which-are-kept-spare\"\u003eMinSpareServers: minimum number of server processes which are kept spare\u003c/h1\u003e\n\u003ch1 id=\"maxspareservers-maximum-number-of-server-processes-which-are-kept-spare\"\u003eMaxSpareServers: maximum number of server processes which are kept spare\u003c/h1\u003e\n\u003ch1 id=\"maxclients-maximum-number-of-server-processes-allowed-to-start\"\u003eMaxClients: maximum number of server processes allowed to start\u003c/h1\u003e\n\u003ch1 id=\"maxrequestsperchild-maximum-number-of-requests-a-server-process-servesstartservers-----10\"\u003eMaxRequestsPerChild: maximum number of requests a …\u003c/h1\u003e\u003c/blockquote\u003e"
April 1, 2010
清除指定squid缓存文件的脚本[原创]
"\u003cp\u003e官方教程:\u003c/p\u003e\n\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2007.08.02 转载请注明出处: \u003ca href=\"http://blog.s135.com/\"\u003ehttp://blog.s135.com\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.squid-cache.org/\"\u003eSquid\u003c/a\u003e web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在 最里层的目录中存放缓存文件(object)。squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后, 将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。\u003c/p\u003e\n\u003cp\u003e对于类似 \u003ca href=\"http://you.video.sina.com.cn/index.html\"\u003ehttp://you.video.sina.com.cn/index.html\u003c/a\u003e 之 类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:\u003c/p\u003e\n\u003cp\u003e引用\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003esquidclient -m PURGE -p 80 “http://you.video.sina.com.cn/index.html”\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e而对于带有参数的网页,例如新浪播客的Flash …\u003c/p\u003e"
April 1, 2010
新浪发起的UNIX开源软件项目
"\u003cp\u003e\u003cstrong\u003eMemcachedb\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e协议: \u003ca href=\"http://www.opensource.org/licenses/bsd-license.php\"\u003eNew BSD License\u003c/a\u003e\n作者:stvchu, gary.caokai, forever.sky81\n团队:新浪互动社区事业部──博客产品\n网址: \u003ca href=\"http://www.memcachedb.org/\"\u003ehttp://www.memcachedb.org/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMemcachedb = memcache + Berkeley DB\u003c/p\u003e\n\u003cp\u003eMemcachedb是一款支持高并发的分布式持久存储 系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。\n前端:memcached 的网络层\n后端:Berkeley DB存储\u003c/p\u003e\n\u003cp\u003e写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。\n读速度:从本地服务 器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。\u003c/p\u003e\n\u003cp\u003e• 支持的memcache命令\nget, set, add, replace …\u003c/p\u003e"
April 1, 2010
dbcached──“分布式 key-value 数据库内存缓存系统”发布[原创]
"\u003cp\u003e前言:dbcached 1.0 beta* 在 Memcached 1.2.4 的基础上编写而成,也是我的第一个开源C项目。编写 dbcached 的目的是为了最大限度的发挥 Memcached 内存缓存的优势,便捷地维护 Memcached 服务器节点哈希列表,智能地支持 Memcached 故障转移,同时保证数据的持久化存储。\u003c/p\u003e\n\u003cp\u003edbcached\u003c/p\u003e\n\u003cp\u003e协议: \u003ca href=\"http://www.opensource.org/licenses/bsd-license.php\"\u003eNew BSD License\u003c/a\u003e\n作者:张宴\n网址: \u003ca href=\"http://code.google.com/p/dbcached/\"\u003ehttp://code.google.com/p/dbcached/\u003c/a\u003e \u003cstrong\u003edbcached 是什么?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e● dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。\u003c/p\u003e\n\u003cp\u003e● \u003cstrong\u003edbcached = Memcached + 持久化存储管理器 + NMDB 客户端接口\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e● Memcached 是一款高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。\u003c/p\u003e\n\u003cp\u003e● NMDB 是一款多协议网络数据库(dbm类)管理器,它由内存缓存和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据库。\u003c/p\u003e\n\u003cp\u003e● …\u003c/p\u003e"
April 1, 2010
MySQL Memcache_engine的安装与使用[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.1 最后修改:2008.09.09 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/357/\"\u003ehttp://blog.s135.com/post/357/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e鉴于国内外还没有人撰写如何安装Memcache_engine的文章,于是,我根据自己的编译安装步骤,写下此文。\u003c/p\u003e\n\u003cp\u003eMemcache_engine是一个MySQL 5.1数据库的存储引擎,它能够让用户通过标准的SQL语句(SELECT/UPDATE/INSERTE/DELETE)访问Memcached(还支 持新浪的 \u003ca href=\"http://www.memcachedb.org/\"\u003eMemcachedb\u003c/a\u003e、 \u003ca href=\"http://code.google.com/p/dbcached\"\u003edbcached\u003c/a\u003e)中 存放的数据。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e限制:\u003c/strong\u003e\n1、Memcache表必须有主键。\n2、只能使用主 键去查询,即只能使用SELECT … FROM … WHERE id = … 方式去查询。\n3、不支持自增ID。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e安装与使用:\u003c/strong\u003e\n1、编译安装memcache_engine的步骤:\u003c/p\u003e\n\u003cp\u003ecd /tmp\u003c/p\u003e\n\u003cp\u003ewget …\u003c/p\u003e"
April 1, 2010
百度、新浪、Mixi、Apache社区赞助的开源 key-value分布式存储系统[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.0 最后修改:2009.01.21 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/394/\"\u003ehttp://blog.s135.com/post/394/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003ekey-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。如果辅以Real- Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数 量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。而MySQL,在几百个并发连接下,就基本上崩溃了。\u003c/p\u003e\n\u003cp\u003e虽然key-value分布式存储具有极高的性能,但是只能做类似于MySQL的SELECT * FROM table WHERE id = 123;简单主键查询。\u003c/p\u003e\n\u003cp\u003e“搜索索引引擎+key-value分布式存储”能够实现高并发的复杂条件查询、全文检索与数据显示。但是, 由于索引更新需要时间,目前还不能实现完全意义上的Real-Time …\u003c/p\u003e"