HHVM 内存缓存集成


HHVM Memcache integration

我有一个安装了Memcache的Drupal 7网站,它在Apache2 Web服务器上运行良好。现在我已经用HHVM(HipHop)取代了Apache2,并在性能上得到了真正的提升。

问题在于,显然Drupal无法与Memcache服务器进行交互。这是错误:

Notice: Use of undefined constant MEMCACHE_COMPRESSED - assumed 'MEMCACHE_COMPRESSED' in dmemcache_set() (line 44 of /.../modules/memcache/dmemcache.inc).

当然,Memcache中没有存储任何内容。

我想Drupal的Memcache模块正在使用PECL的Memcache:set(),这在这个新安装的HHVM中不可用。HHVM 是否有类似 PECL 的安装?

谢谢

PECL扩展不太可能与HHVM兼容,但"纯PHP"实现可能仍然有效。它会比用 C 语言编写的东西慢,但缓存的好处可能会超过原始速度的任何缺点。

有人已经建议Drupal应该包含一个纯PHP实现,以防Memcache/Memcached扩展不可用。该建议包括指向一些替代方案的链接,因此请查看它们:

https://drupal.org/node/1999804

我快速浏览了第一个链接,不幸的是,方法和常量似乎与 PECL 扩展不是 100% 兼容。但是,您可以扩展类,添加一些缺少的常量,并更改参数的顺序以匹配 PECL 扩展的方法。