php - 什么时候应该使用 Memcache 而不是 Memcached?

标签 php memcached

PHP 似乎有两个名为 memcache 的 memcached 库和 memcached .有什么区别,你怎么知道使用哪一个?一个过时了吗?似乎 memcached 提供了更多方法,所以我认为这意味着它的开发最多 - 但它似乎也需要 external C/C++ libraries所以我不确定我是否可以安装它。

似乎 memcache 存在的时间更长,不需要额外的库,并且有 pre-compiled binaries甚至 window !我认为这将是目前更好的选择。但是,作为 memcached(服务器)的新手,我不确定 memcached(php)中是否有一些 super 重要的功能值得额外的麻烦。

最佳答案

Memcached client库最近刚刚发布为稳定版。 digg 正在使用它(由 Andrei Zmievski 为 digg 开发,现在不再使用 digg)并实现了更多 memcached protocol比旧的 memcache 客户端。 memcached 最重要的特性是:

  1. Cas tokens .这让我的生活变得更加轻松,并且是一个简单的陈旧数据预防系统。每当您从缓存中提取某些内容时,您都可以收到一个 cas token (一个双数)。您可以使用该 token 来保存更新的对象。如果在您的线程运行时没有其他人更新该值,则交换将成功。否则会创建一个较新的 cas token ,您必须重新加载数据并使用新 token 再次保存。
  2. 通读callbacks是自切片面包以来最好的东西。它简化了我的大部分代码。
  3. getDelayed()是一个很好的功能,可以减少脚本等待结果从服务器返回的时间。
  4. 虽然 memcached 服务器应该非常稳定,但它并不是最快的。对于较新的客户端,您可以使用二进制协议(protocol)而不是 ASCII。
  5. 每当您将复杂数据保存到 memcached 中时,客户端通常都会对值进行序列化(这很慢),但现在有了 memcached 客户端,您可以选择使用 igbinary .到目前为止,我还没有机会测试这能带来多少性能提升。

所有这些都足以让我切换到最新的客户端,并且可以告诉你它就像一个魅力。存在对 libmemcached 的外部依赖。库,但仍然设法在 Ubuntu 和 Mac OSX 上安装它,所以到目前为止没有问题。

如果您决定更新到较新的库,我建议您更新到最新的服务器版本,并且它还具有一些不错的功能。您需要安装 libevent它可以编译,但在 Ubuntu 上并没有太大的麻烦。

到目前为止,我还没有看到任何框架使用新的 memcached 客户端(尽管我没有跟踪它们),但我推测 Zend很快就会上船。

更新

Zend Framework 2 有一个用于 Memcached 的适配器,可以找到 here

关于php - 什么时候应该使用 Memcache 而不是 Memcached?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1442411/

相关文章:

php - 如何发布到返回文本的 URL 编码 API?

PHP返回值但为假

memcached - 设置一个已经存在的 memcached key 会刷新过期时间吗?

c# - 使用静态 MemcachedClient 的问题

php - 如何将 JSON 编码的 CSS 数据传递到 Mustache 模板中?

javascript - 如何获取php var OpenWeatherMap中第二行js数据

php - 选择查询中需要的下一行

php - Memcached - 它是如何工作的

python - python 中的内存缓存

php - 在 $_SESSION 中存储数据与 memcache(d) 有何不同?