PHP中memcache与memcached对比

  作者:bea

在比较PHP中memcache与memcached之前,我们先来了解下他们分别是什么东东。 什么是Memcache Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,纲前齐世界不少己使用这个缓存项目来构修本人大负载的网站,来分担数据库的压力。 它能够当对于恣意少个衔接,使用非梗阻的网络IO。因为它的农做机造是正在内存中开拓一块空间,然后树立一个HashTable,Memcached自治理那些HashTable。 Memcache
在比较PHP中memcache与memcached之前,我们先来了解下他们分别是什么东东。

什么是Memcache

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,纲前齐世界不少己使用这个缓存项目来构修本人大负载的网站,来分担数据库的压力。
它能够当对于恣意少个衔接,使用非梗阻的网络IO。因为它的农做机造是正在内存中开拓一块空间,然后树立一个HashTable,Memcached自治理那些HashTable。
Memcache官方网站:http://www.danga.com/memcached,更少具体的疑作可以来这里了解

什么是Memcached

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

为什么会有Memcache和memcached两类称号

实在Memcache是这个项目标称号,而memcached是它服务器真个主程序白件实,晓得我的意义了把~~~~。一个是项纲称号,一个是主程序白件实,在网上望到了良多己没有清楚,于是混用了。

从手册上明显可以看到这两个扩展:

http://php.net/manual/en/book.memcache.php

http://php.net/manual/en/book.memcached.php

在QQ群里问了下,没有人能分辨出它们的差别,甚至有人怀疑我说的 Memcached 是 Memcached 服务器(守护进程)。

从手册上看,memcached 会比 memcache 多几个方法,使用方式上都差不多。

看看严谨的老外们怎么说的:
http://stackoverflow.com/questions/1442411/using-memcache-vs-memcached-with-php

Memcached client library was just recently released as stable. It is being used by digg ( was developed for digg by Andrei Zmievski, now no longer with digg) and implements much more of the memcached protocol than the older memcache client.

memcached 实现了更多的 memcached 协议(毕竟是基于 libmemcached 库的)。

http://serverfault.com/questions/63383/memcache-vs-memcached

As Nate's link suggests, both work perfectly well for simple usage. However, memcached supports more features that allow you to get the most performance out of memcached. The binary protocol reduces the amount of data required to be sent between client and server. Multigets and multisets allow you to get/set multiple items at the same time. If you're finding you need more oomph out of memcache, memcached is the better module. The use of libmemcached suggests that the library itself is possibly more optimised than the PHP only version.

Memcached is a more recent module compared to memcache, having only been released 8 months ago. If you need to target an older version of PHP, then you can only really use memcache.

memcached 的版本比较新,而且使用的是 libmemcached 库。libmemcached 被认为做过更好的优化,应该比 php only 版本的 memcache 有着更高的性能。

这里有另外一个对比表,很明显,用 memcached 会让人放心很多:
http://code.google.com/p/memcached/wiki/PHPClientComparison
差别比较大的一点是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 会有更高的性能。不过,还需要注意的是,memcached 目前还不支持长连接:

pecl/memcached does not support failover or persistent connections. This is quite annoying, since I'm sure the underlying libmemcached C library supports both.
pecl/memcache does not have the very handy getServerByKey() method, which is immensely useful when debugging.

在这里,推荐大家使用 memcached。

有用  |  无用

猜你喜欢