梅姆卡切 vs. 梅姆卡切德

2022-08-30 06:50:29

可能的副本:
使用 Memcache 与 Memcached 与 PHP

有人可以解释一下PHP环境中Memcache和Memcached之间的区别吗?一个比另一个有什么优势?您能否还建议用于在两者之间进行选择的标准?


答案 1

它们并不完全相同。Memcache较旧,但它有一些限制。我在我的应用程序中使用得很好,直到我意识到你不能在缓存中存储文字。从缓存返回的值与在缓存中找不到值时返回的 FALSE 相同。没有办法检查哪个是哪个。Memcached还有其他方法(以及其他方法),可以告诉您是否找到了密钥。FALSEFALSEMemcached::getResultCode

由于这个限制,我切换到存储空数组而不是缓存中。我仍然在使用Memcache,但我只是想把这些信息放在那里给那些正在决定的人。FALSE


答案 2

(部分从服务器故障中窃取)

我认为两者在功能上是相同的,但它们只是有不同的作者,而且一个比另一个更合适的命名。


以下是命名约定的快速背景程序(对于那些不熟悉的人),它解释了提问者的挫败感:对于许多*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 找到。


推荐