PHP模块memcache与memcached的区别总结?

由于在项目后期会引入缓存策略对角色的数据进行缓存,而现在我们大部分缓存都使用文件缓存,开发过网页游戏的朋友们大都知道,语言包和游戏相关的数据大部分不经常改动,有时候几个星期不需要更新,只是在进行版本更新的时候才重新生成一次数据缓存,而角色的数据和数值时刻在变化着,会频繁的更新和操作,采用文件缓存会频繁地进行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 多几个方法,使用方式上都差不多。所以相对来说,memcached版本的功能更全一些。

memcache是原生实现的,但是使用libmemcached的memached只支持OO接口,而 memcache则是OO和非OO两套接口并存,以后随着memcached服务器端的改进,这个lib也必定会马上跟进的。而memcache却不一定能做到按时跟进。

memcached还有个非常称赞的地方,就是flag不是在操作的时候设置了。而是有一个统一的setOption()。memcached 实现了更多的memcached 协议(毕竟是基于 libmemcached 库的)。

memcached支持Binary Protocol,而memcache不支持。这意味着memcached会有更高的性能。不过memcached目前还不支持长连接。 

对比php客户端扩展memcache与memcached 

memcache扩展的方法

PHP模块memcache与memcached的区别总结?

memcached扩展的方法

PHP模块memcache与memcached的区别总结?

另外一点也是大家比较关心的,就是所使用的算法。大家都知道“一致性hash算法”是当添加或删除存储节点时,对存储在memcached上的数据影响较小的一种算法。那么在php的两个扩展库中,都可以使用该算法,只是设置方法有所不同。 

Memcache 

修改php.ini添加: 

[Memcache] 

Memcache.allow_failover = 1 

…… 

…… 

Memcache.hash_strategy =consistent 

Memcache.hash_function =crc32 

…… 

…… 

或在php中使用ini_set方法: 

Ini_set(‘memcache.hash_strategy','standard'); 

Ini_set(‘memcache.hash_function','crc32'); 

Memcached 

$mem = new memcached(); 

$mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT); 

$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);

参考:http://muxi.me/php-tech/memcache-memcached.html


memcache和memcached的区别

在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢? 

其实很简单,memcache是php的一个扩展,用于php管理memcached,php-memcache.dll。 

如果安装了memcached不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题 

如果安装了memcache扩展但是没有安装memcached服务,那么这个就无法使用 

只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能


文章总结自互联网

未经允许请勿转载:程序喵 » PHP模块memcache与memcached的区别总结?

点  赞 (0) 打  赏
分享到: