内存缓存与。内存缓存 [重复]

Posted

技术标签:

【中文标题】内存缓存与。内存缓存 [重复]【英文标题】:Memcache Vs. Memcached [duplicate] 【发布时间】:2010-12-21 23:13:33 【问题描述】:

可能重复:Using Memcache vs Memcached with php

谁能解释一下 PHP 环境中 Memcache 和 Memcached 的区别? 一个比另一个有什么优势? 您能否也建议用于在其中一个或另一个之间进行选择的标准?

【问题讨论】:

serverfault.com/questions/63383/memcache-vs-memcached 不属于服务器故障;这是关于 memcache 和 memcached PHP 模块的;不是守护进程本身。 【参考方案1】:

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

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

【讨论】:

@Mike,限制是否仍然存在或已修复 @Mike,您解释了 Memcache 和 Memcached 之间的完美区别。它们在存储价值时都有非常基本的区别。 Memcache 主要将每个值视为字符串,而 Memcached 将其存储值的原始类型。为你的回答点赞! @Pacerier 如果这些限制得到修复,人们会抱怨。 @Jasen 如果这些限制得到修复,为什么人们会抱怨? 因为任何正在检查 "FALSE" 并现在找到 FALSE 的代码都将突然不起作用。 PHP 非常糟糕,在保持兼容性方面,wordpress 迫使他们破坏 mail()【参考方案2】:

(部分Stolen from ServerFault)

我认为两者在功能上是相同的,只是作者不同,而一个人的名字比另一个人更合适。


这里是命名约定的快速背景知识(对于那些不熟悉的人),它解释了提问者的挫败感:对于许多 *nix 应用程序,执行后端工作的部分称为“守护进程”(想想“服务”在 Windows 领域),而接口或客户端应用程序是您用来控制或访问守护进程的。守护程序通常与客户端命名相同,并附加字母“d”。例如,“imap”将是一个连接到“imapd”守护进程的客户端。

当您阅读 memcache 模块的介绍时,memcache 显然遵循此命名约定(请注意此摘录中 memcache 和 memcached 之间的区别):

Memcache 模块提供了方便 面向过程和面向对象 与 memcached 的接口,高度 有效的缓存守护进程,它是 专为减少 动态网络中的数据库负载 应用程序。

Memcache 模块还提供了一个 会话处理程序(内存缓存)。

更多关于 memcached 的信息可以 可以在 » http://www.danga.com/memcached/.

这里的挫败感是由 PHP 扩展的作者造成的,该扩展名为 memcached,因为它与名为 memcached 的实际守护程序具有相同的名称。另请注意,在 memcached(php 模块)的介绍中,提到了 libmemcached,它是模块用来访问 memcached 守护进程的共享库(或 API):

memcached 是一种高性能, 分布式内存对象缓存 系统,本质上是通用的,但是 用于加速 动态网络应用程序 减轻数据库负载。

此扩展使用 libmemcached 提供 API 的库 与 memcached 服务器通信。 它还提供了一个会话处理程序 (内存缓存)。

关于 libmemcached 的信息可以是 发现于 » http://tangent.org/552/libmemcached.html.

【讨论】:

据我了解,memcacheD 具有使用 mysql 命令在数据库层工作的能力。这样,您的代码甚至不必调用特殊的缓存方法。都在数据库里完成了吗? 所以 Memcache Vs. Memcached是不是他们有不同的作者?? 是的,他们有不同的作者和不同的界面。 最大的不同是(仍然)没有适用于 Windows 的 php memcached 模块!你只能使用 php_memcache.dll 现在好像有 Windows 版本的 memcached:commaster.net/content/installing-memcached-windows

以上是关于内存缓存与。内存缓存 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 内存缓存与磁盘缓存

Linux中内存buffer和cache的区别

CPU缓存与内存屏障解析

android磁盘缓存与内存缓存

点网内存缓存驱逐

使用内存缓存与浏览器缓存的优缺点是啥