我想使用memcached
http://www.danga.com/memcached/
我已经通过yum install memcached
安装了它
但是现在我需要连接到PHP,并且有一个名为memcache的扩展名和一个名为memcached? 哎呀
http://us3.php.net/manual/en/book.memcache.php
http://us3.php.net/manual/en/book.memcached.php
有人能指出我在这个正确的方向吗?哪一个将要工作?
另外,即使是本地的,我是否还需要打开任何端口? 运行后,我尝试telnet 127.0.0.1 11211,并得到连接拒绝。
简短的回答:无论你正在寻找什么,但我的第一个select将是memcache(你列出的第一个), 纯粹是基于正确使用命名法。
下面是我得出这个结论的方法:
下面是命名约定(对于那些不熟悉的)的快速背景,这解释了问题提出者的沮丧:对于许多* nix应用程序,执行后端工作的部分被称为“守护进程”(在Windows中称为“service”陆地),而接口或客户端应用程序是用来控制或访问守护进程的。 守护进程通常被命名为与客户端相同,并附有字母“d”。 例如,“imap”将是连接到“imapd”守护程序的客户端。
当你阅读memcache模块的介绍时,这个命名约定显然被memcache所遵守(注意在这个摘录中memcache和memcached之间的区别):
Memcache模块为memcached提供了方便的面向过程和面向对象的接口,这是一个高效的caching守护进程,专门用于减lessdynamicWeb应用程序中的数据库负载。
Memcache模块还提供会话处理程序(memcache)。
有关memcached的更多信息,请参阅» http://www.danga.com/memcached/ 。
这里的沮丧是由于PHP扩展的作者被错误地命名为memcached而引起的 ,因为它与名为memcached的实际守护进程共享相同的名称。 还要注意,在memcached(php模块)的介绍中 ,它提到了libmemcached ,它是模块用来访问memcached守护进程的共享库(或API):
memcached是一个高性能,分布式的内存对象caching系统,通常是用于加速dynamicWeb应用程序,通过缓解数据库负载。
该扩展使用libmemcached库来提供与memcached服务器通信的API。 它还提供了一个会话处理器(memcached)。
有关libmemcached的信息,请参阅» http://tangent.org/552/libmemcached.html 。
总而言之,两者在function上是相同的,但他们只是有不同的作者,而且只是比其他人更为恰当。
您可能希望看到PHP客户端比较 。
简短的版本:他们都将工作,并在大多数情况下,任何一个将会做得很好。
关于另一个问题:是的,你应该可以做telnet 127.0.0.1 11211
。 很less有防火墙会阻止本地主机与自己进行通信。 如果无法连接,请通过执行ps auxwww | grep memcached
validationmemcached是否正在运行 ps auxwww | grep memcached
,它还会显示用于启动memcached的命令行参数。 其中一个参数应该是-p 11211
或另一个端口号。 有关所有可能参数的含义,请参阅man memcached
。
正如Nate的链接所暗示的,两者对于简单的用法都非常适用。 但是,memcached支持更多的function,可以让您从memcached中获得最高的性能。 二进制协议减less了客户端和服务器之间需要发送的数据量。 Multigets和multisets允许您同时获取/设置多个项目。 如果你发现你需要更多的memcache,memcached是更好的模块。 libmemcached的使用表明库本身可能比仅PHP版本更优化。
与memcache相比,Memcached是一个较新的模块,仅在8个月前发布。 如果您需要定位旧版本的PHP,那么您只能真正使用memcache。
较老的buggier被称为php-memcache
因为这似乎是最合适的名称。 由Digg人自主开发的更新,更好的版本被命名为php-memcached
,以消除歧义。
那些build议你根据名称的正确性来select一个的人真的没有业务提供技术build议。
关于这个问题,这里是正确的答案: http : //about.digg.com/blog/new-pecl-extension-libmemcached-released
最近使用过php-memcache,我不得不把你指向php-memcached。
这是我头顶的几个原因..
1)没有getErrorCode()或等价的方法,所以如果get()返回FALSE,你不知道这是因为存储在memcache中的值是否为false,或者是否存在某种问题。
2)用于一致散列的哈希algorithm似乎与其他实现不同,例如由libmemcached构build的许多客户端库。 这意味着,如果您想要使用多种语言的相同memcache集群,则可能会遇到问题,您将使用PHP客户端存储值,而其他客户端则无法find它。
两者都有今天的问题。 PECL / memcache是旧的和可靠的,只有一些例外,如过时。 PECL / memcached 1.x最好是beta版。 某些函数不处理数字键,在使用持久连接时会泄漏连接。 一些(所有?)正在GitHub中修复,并将在2.x中的某一时刻发布,但不是在今天。 有关更详细的评论,请参阅http://brian.moonspot.net/php-memcached-issues
我正在写一本“Expert PHP和MySQL”的书。 我写了差不多相同的东西。 我推荐的是PECL / memcached。 #1 – 它围绕一个全function的performance良好的C库#2 – 最近维护。 #3 – 更多的function。 不要贬低PECL / memcache。
在Drupal 6和php-pecl-memcached中,我遇到了一些非常严重的问题,其中响应时间被延迟了5ms,每次调用会导致一个特定的站点创build比php-pecl-memcached 。 更改为php-pecl-memcache修复了所有的问题; 延迟和额外的通话。
这个答案只是为了帮助那些使用Drupal 6和可能的Drupal 7。
还有其他memcached客户端,请参阅http://code.google.com/p/memcached/wiki/Clients
从网上剪切和粘贴:
http://www.php.net/manual/en/intro.memcache.php
Memcache module provides handy procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications. The Memcache module also provides a session handler (memcache). More information about memcached can be found at » www.memcached.org
http://www.php.net/manual/en/intro.memcached.php
» memcached (http://www_memcached_org/) is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. This extension uses libmemcached library to provide API for communicating with memcached servers. It also provides a session handler (memcached). Information about libmemcached can be found at » tangent.org/552/libmemcached.html
http://pecl.php.net/package/memcached “用于通过libmemcached库与memcached连接的PHP扩展”此扩展使用libmemcached库来提供与memcached服务器通信的API。 https://github.com/andreiz/php-memcached
http://pecl.php.net/package/memcache“memcached扩展”Memcached是一个caching守护进程,专为dynamicWeb应用程序devise,通过在内存中存储对象来减less数据库负载。 这个扩展允许你通过方便的OO和程序接口来处理memcached。
http://code.google.com/p/memcached/wiki/PHPClientComparison
pecl/memcache pecl/memcached First Release Date 2004-06-08 2009-01-29 (beta) Actively Developed? Yes Yes External Dependency None libmemcached