2009年07月6日
by 庆亮
2 comments
从目录中就可以看出来, 这是一本超越纯粹代码范畴的书. 涉及到开发工具, 开发方法, 开发过程, 体系结构, 应用分层, 常用web功能举例和注意事项, 性能瓶颈, 扩展并提出一些解决方法, 最后还涉及到性能的监控方法.
扩展Web应用程序
一、概念
简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种:
1. 垂直扩展(stade up),通俗的说就是将某台单一的机器的性能提升的更高,如添加内存、更换更强的处理器等等。
2. 水平扩展(out),通俗的说就是添加新的机器。
对比可以发现,水平扩展比垂直扩展有更强大的扩展性,可以说是“无限”扩展,毕竟单台的机器的性能总是有限的,硬件的技术发展还赶不上web的发展。但同时,水平扩展也来了更高的维护成本。实际中,需要根据具体情况来寻求一个平衡点。 (全文…)
架构
2009年07月5日
by 庆亮
0 comments
WP固然强大,但是其编辑器一直是比较鸡肋的。今晚折腾了挺久终于放弃了WP自带的编辑器,而改用强大的FCK。之后就可以不使用代码高亮插件了,方法如下:
1.本地将IDE编写的代码复制进WORD
2.拷贝WORD的代码,如浏览器有访问剪切板的提示则选择允许,OK,代码高亮了。
限制:某些IDE的代码拷贝到WORD后颜色会丢失(基于Java开发的貌似都不会,而DW之内的则会丢失)
暂未分类
2009年07月4日
by 庆亮
0 comments
在代码中遇到了memcache set方法失败的问题,无任何错误提示,PHP的memcache扩展本身也没有debug或者error提示。同样的代码,将本地的环境跟服务器的环境对比了一下(在服务器端一直没有遇到这个问题),发现原来是我所使用的php memcache扩展版本较低导致的。PECL有个bug报告http://pecl.php.net/bugs/bug.php?id=9486 ,也是提到这个问题了,在新的版本中已经解决了(2.1.1)。
使用php的memcache扩展时,如果给set/get方法传递一个空值(NULL),则会导致memcached服务端主动关闭连接,见如下的代码示范:
$mem = new Memcache();
$mem->connect(’192.168.64.12′, ’11211′);
$mem->set(‘aaa’, array(‘aaa’)); //成功
$mem->set($aaaa, ‘aaaa’); //失败,并导致到memcached服务器的连接丢失,所以之后的方法都失败了(返回false)
$mem->set(‘bbb’, array(‘bbb’));//失败
$mem->get(‘aaa’);//失败
没有测试memcached扩展是否有过这样的bug。
顺便提一下在PHP中memcached和memcache是两个不同的扩展,区别是memcached基于libmemcached库封装的API接口。见PHP手册
This extension uses libmemcached library to provide API for communicating with memcached servers. It also provides a session handler (memcached).
而通常所说的memcached就是指memcached服务器端。
另外如果key过长(250以上),value过大(1M以上)或者过期时间过长(大于2592000)都会导致set失败。
PHP高级应用