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