2013年1月9日

摘要: LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。 Jeff Dean其人:http://research.google.com/people/jeff/index.html,Google大规模分布式平台Bigtable和MapReduce主要设计和实现者。 Sanjay Ghemawat其人:http://research.google... 阅读全文

posted @ 2013-01-09 11:28 hiBOSS 阅读(260) 评论(0) 推荐(1) 编辑

2013年1月8日

摘要: 本文转自http://ixdba.blog.51cto.com/2895551/806622一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统 阅读全文

posted @ 2013-01-08 22:15 hiBOSS 阅读(202) 评论(0) 推荐(0) 编辑

2012年12月25日

摘要: 摘要:AddThis的数据分析副总监Matt Abrams在High Scalability上发表了一篇文章,介绍了他们公司如何应对大数据。Matt Abrams表示,AddThis仅仅用了1.5KB内存的内存就计算了十亿个不同的对象,这与他们所使用的计算方法分不开的。AddThis(前身为Clearspring)的数据分析副总监Matt Abrams在High Scalability上发表了一篇文章,介绍了他们公司如何应对大数据。在这篇文章中,AddThis仅仅用了1.5KB内存的内存就计算了十亿个不同的对象,Matt Abrams主要向我们详解了他们公司在处理过程中使用的方法。以下为文章全 阅读全文

posted @ 2012-12-25 14:06 hiBOSS 阅读(197) 评论(0) 推荐(0) 编辑

2012年12月21日

摘要: 玩转tokyotyrant一 部署 tokyocabinet是存储引擎DBM tokyo tyrant是一个可持久化的缓存服务器,类似memcachedb,tokyo tyrant本身是个缓存服务器,但需要tokyo cabinet作为存储引擎,就像memcachedb中的memcache需要berkeley db一样. 当做为Hash表数据库使用时,每个key必须是不同的,因此无法存储两个key相同的值。提供了以下访问方法:提供key,value参数来存储,按 key删除记录,按key来读取记录,另外,遍历key也被支持,虽然顺序是任意的不能被保证。这些方法跟Unix标准的DBM,例如GDB 阅读全文

posted @ 2012-12-21 17:27 hiBOSS 阅读(193) 评论(0) 推荐(0) 编辑

摘要: 服务端处理模型 在 tt server 中,是以多线程的方式向客户端提供服务的:一个主线程负责 accept 客户端的socket,一定数目的线程(可以指定)进行读写服务,同时,也有一定数目的timer线程,专门用来负责定时的任务,比如一些定时的 Lua 脚本,同时,如果是slaver,则会有专门一个timer线程,定时负责 do slave 的工作。 而在 Redis 中,采用的则是单线程的模型来处理所有的客户端请求。 应该说这两种模型,都有各自的优点和缺点。多线程可以利用多核CPU的计算能力,但因此也会增加CAS自旋或者是锁的一些消耗,同时,如果线程过多,那么线程之间上下文的切换,也... 阅读全文

posted @ 2012-12-21 13:42 hiBOSS 阅读(328) 评论(0) 推荐(0) 编辑

摘要: InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 以下是一些细节和具体实现的差别: ◆1.InnoDB不支持FULLTEXT类型的索引。 ◆2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM... 阅读全文

posted @ 2012-12-21 11:56 hiBOSS 阅读(142) 评论(0) 推荐(0) 编辑

摘要: One of the key values at Facebook is to move fast. For the past six years, we have been able to accomplish a lot thanks to rapid pace of development that PHP offers. As a programming language, PHP is simple. Simple to learn, simple to write, simple to read, and simple to debug. We are able to get ne 阅读全文

posted @ 2012-12-21 11:29 hiBOSS 阅读(228) 评论(0) 推荐(0) 编辑

摘要: 下面将对几种典型的代理服务作一个简单的比较。在网络上常见的代理服务器有三种: 1. 标准的代理缓冲服务器 一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文.. 阅读全文

posted @ 2012-12-21 10:58 hiBOSS 阅读(210) 评论(0) 推荐(0) 编辑

2012年12月20日

摘要: 首先,需要了解Memcached协议,如果不清楚可参考《Memcached 协议中英文对照》。 1、数据存储(假设key为zhangyan,value为12345)printf "set zhangyan 0 0 5\r\n12345\r\n" | nc 127.0.0.1 11211 STORED 2、数据取回(假设key为zhangyan)printf "get zhangyan\r\n" | nc 127.0.0.1 11211 VALUE zhangyan 0 5 12345 END 3、数值增加1(假设key为zhangyan,并且value为 阅读全文

posted @ 2012-12-20 16:39 hiBOSS 阅读(215) 评论(0) 推荐(0) 编辑

摘要: 不断有人跟我说Nginx比Apache好、比Apache快之类。Nginx更主要是作为反向代理,而非Web服务器使用。我翻译过一本关于反向代理的技术书籍,同时精通ApacheAPI开发,对Nginx和Apache的工作原理都略有了解,粗谈一下看法。 不管是Nginx还是Squid这种反向代理,其网络模式都是事件驱动。事件驱动其实是很老的技术,早期的select、poll都是如此。后来基于内核通知的更高级事件机制出现,如libevent里的epoll,使事件驱动性能得以提高。事件驱动的本质还是IO事件,应用程序在多个IO句柄间快速切换,实现所谓的异步IO。事件驱动服务器,最适合做的就是这种IO. 阅读全文

posted @ 2012-12-20 16:13 hiBOSS 阅读(159) 评论(0) 推荐(0) 编辑