梅姆卡切 vs. 梅姆卡切德
有人可以解释一下PHP环境中Memcache和Memcached之间的区别吗?一个比另一个有什么优势?您能否还建议用于在两者之间进行选择的标准?
有人可以解释一下PHP环境中Memcache和Memcached之间的区别吗?一个比另一个有什么优势?您能否还建议用于在两者之间进行选择的标准?
它们并不完全相同。Memcache较旧,但它有一些限制。我在我的应用程序中使用得很好,直到我意识到你不能在缓存中存储文字。从缓存返回的值与在缓存中找不到值时返回的 FALSE 相同。没有办法检查哪个是哪个。Memcached还有其他方法(以及其他方法),可以告诉您是否找到了密钥。FALSE
FALSE
Memcached::getResultCode
由于这个限制,我切换到存储空数组而不是缓存中。我仍然在使用Memcache,但我只是想把这些信息放在那里给那些正在决定的人。FALSE
(部分从服务器故障中窃取)
我认为两者在功能上是相同的,但它们只是有不同的作者,而且一个比另一个更合适的命名。
以下是命名约定的快速背景程序(对于那些不熟悉的人),它解释了提问者的挫败感:对于许多*nix应用程序,执行后端工作的部分称为“守护进程”(在Windows-land中称为“服务”),而接口或客户端应用程序是您用来控制或访问守护程序的。守护程序通常与客户端的名称相同,并附加字母“d”。例如,“imap”将是连接到“imapd”守护程序的客户端。
当您阅读 memcache 模块的介绍时,memcache 显然遵循此命名约定(请注意此摘录中 memcache 和 memcached 之间的区别):
Memcache 模块为 memcached、高效的缓存守护程序提供了方便的过程和面向对象的接口,该守护程序专门设计用于减少动态 Web 应用程序中的数据库负载。
Memcache 模块还提供了一个会话处理程序(memcache)。
有关memcached的更多信息,请访问» http://www.danga.com/memcached/。
这里的挫折感是由PHP扩展的作者引起的,该扩展名叫memcached,因为它与名为memcached的实际守护程序共享相同的名称。还要注意,在 memcached(php 模块)的介绍中,它提到了 libmemcached,它是模块用来访问 memcached 守护程序的共享库(或 API):
memcached 是一种高性能的分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。
此扩展使用 libmemcached 库来提供用于与 memcached 服务器通信的 API。它还提供了一个会话处理程序(memcached)。
有关libmemcached的信息可以在» http://tangent.org/552/libmemcached.html 找到。