【问题标题】:Is PHP Memcached fully backwards compatible with Memcache?PHP Memcached 是否完全向后兼容 Memcache?
【发布时间】:2016-02-29 13:50:19
【问题描述】:

我正准备通过 dotdeb 存储库将 Debian 服务器从 PHP 5.6 升级到 7.0。 Dotdeb 存储库没有(旧)Memcache 包,但它们有(新)Memcached 包。我使用的第三方模块依赖于 Memcache。查看 API,似乎 Memcached 库应该与 Memcache 完全向后兼容,所以我可以这样做:

if (!class_exists('Memcache') && class_exists('Memcached')) {
    class Memcache extends Memcached
    {
    }
}

在测试中它似乎有效。 memcached 文档中的 cmets 提到了 at least one gotcha,但由于我不想同时运行它们,所以这不是问题。

但是,我找不到其他有关兼容性的内容。这是确保 Memcached 和 Memcache 之间向后兼容的安全方法,还是我需要更复杂的适配器?

【问题讨论】:

标签: php memcached


【解决方案1】:

我不确定 PECL Memcache 项目发生了什么,但基础 Github 项目已更新以支持 PHP7,但仍未以任何官方身份发布(我也需要这个,所以我一直保留标签)。

几周前,Remi repo (CentOS/Fedora) 发布了一个基于这些更新的 PECL 包,它看起来很稳定。如果您需要这个,我建议您拉取 Github 存储库并构建 PECL 扩展。如果没有正式发布,这是我唯一可以向您建议的事情。这样您就不必破解旧类来使用现有代码。

https://github.com/websupport-sk/pecl-memcache(非官方)
https://github.com/php/pecl-caching-memcache(官方)

【讨论】:

    【解决方案2】:

    回答我自己的问题,不,两者不兼容。对于可能遇到此问题的任何人,我编写了一个小 shim,它复制了 Memcache API 的一部分并将其传递给 Memcached。可用于download on SourceForge

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2021-05-01
      • 2016-10-20
      相关资源
      最近更新 更多