PHP Memcached 是否完全向后兼容 Memcache?

Is PHP Memcached fully backwards compatible with Memcache?

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

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

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

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

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

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

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

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