memcache和memcached之间的区别和联系【转】 07月11日
由于在项目后期会引入缓存策略对角色的数据进行缓存,而现在我们大部分缓存都使用文件缓存,开发过网页游戏的朋友们大都知道,语言包和游戏相关的数 据大部分不经常改动,有时候几个星期不需要更新,只是在进行版本更新的时候才重新生成一次数据缓存,而角色的数据和数值时刻在变化着,会频繁的更新和操 作,采用文件缓存会频繁地进行I/O操作,在这个功能上文件缓存就不太适合了,所以对于角色的数据采取内存缓存策略在这里就比较合适。
对于内存缓存,比较常用的有两种memcache和memcached扩展。而memcached和memcache的守护进程memcached同名, 比较容易引起混淆,甚至提到memcached,有些人第一想到的是后台的守护进程,这里还是有必要分析一下两者之间的区别,以下观点仅是个人观点,希望 朋友进行补充和更正。
首先我们可以从php官方手册上可以清晰的看到两者的区别:
memcache:http://cn2.php.net/manual/en/book.memcache.php
memcached:http://cn2.php.net/manual/en/book.memcached.php
memcache是完全在PHP框架内开发的,memecached是使用libmemcached的。从手册上看,memcached 会比 memcache 多几个方法,使用方式上都差不多。 (更多…)
PHP5.4改变的新特性(未完待续) 07月04日
PHP5.4改变的特性
20 Jun 2011, PHP 5.4.0 Alpha 1
- autoconf 2.59+ is now supported (and required) for generating the
configure script with ./buildconf. Autoconf 2.60+ is desirable
otherwise the configure help order may be incorrect. (Rasmus, Chris Jones)
删除的特性:
. break/continue $var syntax. (Dmitry)
. Safe mode and all related ini options. (Kalle) //删除安全模式相关的所有函数和配置
. register_globals and register_long_arrays ini options. (Kalle) //删除这两个函数配置文件中的内容
. import_request_variables(). (Kalle) //
. allow_call_time_pass_reference. (Pierrick)
. define_syslog_variables ini option and its associated function. (Kalle)
. highlight.bg ini option. (Kalle)
. Session bug compatibility mode (session.bug_compat42 and
session.bug_compat_warn ini options). (Kalle)
. session_is_registered(), session_register() and session_unregister()
functions. (Kalle)
. y2k_compliance ini option. (Kalle)
- Moved extensions to PECL: (Johannes) //sqlite 被移动到PECL中
. ext/sqlite. (更多…)
利用Curl、socket、file_get_contents POST数据 05月16日
/**
* Socket版本
* 使用方法:
* $post_string = "app=socket&version=beta";
* request_by_socket('facebook.cn','/restServer.php',$post_string);
*/
function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30){
$socket = fsockopen($remote_server,$port,$errno,$errstr,$timeout);
if (!$socket) die("$errstr($errno)");
fwrite($socket,"POST $remote_path HTTP/1.0");
fwrite($socket,"User-Agent: Socket Example");
fwrite($socket,"HOST: $remote_server");
fwrite($socket,"Content-type: application/x-www-form-urlencoded");
fwrite($socket,"Content-length: ".strlen($post_string)+8."");
fwrite($socket,"Accept:*/*");
fwrite($socket,"");
fwrite($socket,"mypost=$post_string");
fwrite($socket,"");
$header = "";
while ($str = trim(fgets($socket,4096))) {
$header.=$str;
}
$data = "";
while (!feof($socket)) {
$data .= fgets($socket,4096);
}
return $data;
}
/**
* Curl版本
* 使用方法:
* $post_string = "app=request&version=beta";
* request_by_curl('http://facebook.cn/restServer.php',$post_string);
*/
function request_by_curl($remote_server,$post_string){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$remote_server);
curl_setopt($ch,CURLOPT_POSTFIELDS,'mypost='.$post_string);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT,"Jimmy's CURL Example beta");
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
?>
/**
* 其它版本
* 使用方法:
* $post_string = "app=request&version=beta";
* request_by_other('http://facebook.cn/restServer.php',$post_string);
*/
function request_by_other($remote_server,$post_string){
$context = array(
'http'=>array(
'method'=>'POST',
'header'=>'Content-type: application/x-www-form-urlencoded'."".
'User-Agent : Jimmy's POST Example beta'."".
'Content-length: '.strlen($post_string)+8,
'content'=>'mypost='.$post_string)
);
$stream_context = stream_context_create($context);
$data = file_get_contents($remote_server,FALSE,$stream_context);
return $data;
}
?>
php技术大会2011 05月08日
2011-05-07,在北京长城饭店参加完了2011年php技术大会,这个算是中国php的最高技术论坛吧,到场的人大概有1000多,当然,百度、腾讯、淘宝、新浪等大公司来的人应该超过了一半。php,这个顶着中国70%左右的互联网流量的编程语言,神奇的把大家聚合在了一起。
回到我的技术博客 03月11日
这段时间什么都不想想,上次写日志是在过年的时候,转眼间已经一个月过去了。
生活就是这样,在迷茫中思考,也许,这个过程很艰难,但是,这也是成长。
从现在开始,我的博客将转入一个技术博客,我将记录我所有的技术历程。
河马归来
http各个版本以及https 12月06日
决定仔细研究一下http的协议了,从业这么久来还没有仔细看过http协议,我表示很震惊。
HTTP(HyperText Transfer Protocol)目前有三个版本:HTTP0.9 HTTP1.0 HTTP1.1
HTTP0.9是最早的一个版本,定义了一些简单的请求和应答。
HTTP1.0比较完善,目前应用最广泛
HTTP1.1增加了大量的报头域,用来与时俱进,并且对1.0中的一些做了严格的规定。
HTTP1.1 提供了一个给予口令基本认证方法,比如你可以在apache中配置的那个访问口令就是这个协议的实现。在身份认证上,针对基本认证方法以明文传输口令这一个最大缺点,补充了摘要认证方法,不再传递口令明文,而是将口令经过善猎函数变换后传递他的摘要。
HTTP的协议的升级版SHTTP,就是https。最新版SHTTP1.3建立在HTTP1.1基础上,提供了数据加密、身份认证、数据完整、防止否认等能力。
我来新浪1年了 10月19日
如果说,这是一个日子的话,我希望记录下来,这是我工作第一年的记录。
我来新浪实习、工作已经一年了,经历了一个冬夏春秋,我突然发现一年过得是那么的洒脱,或许,我应该早一点开始写博客,这样我会有更多回忆的东西。
到现在为止,我只能通过我的点点滴滴的每日计划和一些笔记去回忆这一年的工作经历,我确实,应该早点整理自己的记录。
这一年,算我学习的一年吧,在新浪视频待的这段时间,我学到了很多很多的东西,感谢在部里面所有带领我的前辈们,但是我真的不知道该用什么方式来感谢。
今天,我开通了我的技术博客http://www.heyues.com ,我将用笔来记录我的技术生活,整理自己的知识,分享自己的研究。
在前几个月我就修改了我的msn的状态为“每周,都要花点时间来研究一下别的技术”,我希望在接下来的一年里面,我在先搞好我的本职工作——网络应用开发工程师的基础上,尽量再多研究一些其他的东西——比如系统开发,系统运维,手机开发等,我希望这是我的一个目标,有目标总比没有目标好。
毕业这段时间 10月07日
毕业这段时间发生了很多事情,但是我都一直没有时间停下来思考。太乱,一直没有时间去理弄。
在毕业那段时间,也是我生活最困难的时候,我完全没有办法接受我马上要出学校的现实,而那个时候,我的手头,只有1000多块钱。我当时经常自嘲我自己,我连租房子的首付都付不起(北京的房租很贵,1000多一个月,还押一付三,交四五千),而且,我每个月还面临着700左右的大学的助学贷款……还记得,在大学的最后时期,我感觉到我实在是没有办法熬到我第一个月的工资发下来了,我硬着头皮,向我的大学的一个项目的老师问了一下大学的一个项目的科研经费还有几千块钱没有批下来(有的时候,学校的科研经费是由学校的“某个部门管理”,没有科研发票没有办法批准,这笔钱,最后在哪里,我也无从所知)。当然,我最应该感谢的是彦涛同学,是他让我不至于去露宿街头,是他,提供给了我房子,让我在前几个月不用急着给他房租(他不是我的房东,我的一个朋友)。
这几个月,一直思考着回家的事情,一来家里面的老屋由于高速路要被拆迁,很想回去看看陪伴我几十年的老屋;二来想回家安静一下,在北京过得过于奔波,想回老家,过点安静的生活了。我的日记本,应该是大学毕业就很少写了,我不知道我应该写什么。从工作开始,我就很少写日记了,我很希望,能像以前那样,思考一些问题,思考属于我的生活。但是如今的我,已经没有办法驾驭我的文字了,也无法控制自己的感情了。
毕业后的时间过得很快,到现在的时候居然是用月来计算,每个月都在等待着月末发工资的那天,毕业前几个月的生活过于惨淡。或许,我真的需要这样的一种生活,一种没有家人的帮助,在外面靠朋友的支持度过难关。
待续……
2010年10月7日
