我可以在ZendFramework 1.12中使用memcachier吗?
我正在使用的提供程序(AppFog)只提供Memcachier(Memcached即将在10个月后推出)而且我的应用程序在启动时需要大量缓存。我不想坚持APC所以我没有其他好的选择。
答案 0 :(得分:1)
所以现在这只是一个半答案,我会试着弄清楚剩下的。顺便说一句,我为MemCachier工作,如果您有更多问题,请发送电子邮件至support@memcachier.com。
PHP默认包含两个memcache绑定:memcache和memcached。第一个(memcache)是它自己的memcache procotol实现,而第二个(memcached)是一个php绑定到libmemcached C ++库。
php的memcached绑定现在支持SASL(从2.0.0版开始)。可悲的是,没有记录。它也是memcached模块的可选部分,因此您需要确保在启用了SASL支持的机器(或AppFog)上编译它。大致这样做的步骤是:
编辑php.ini文件。将以下行放入其中:
[memcached]
memcached.use_sasl = 1
我使用自制程序在OSX 10.8上完成了所有这些操作。如果是这种情况,则以下情况应该有效:
$ brew install libmemcached
$ brew edit php54-memcached
// you'll need to add the line:
args << "--enable-memcached-sasl"
// to the brew file.
$ brew install php54-memcached
现在要实际使用SASL支持,这里有一个测试文件来演示它并且是一个很好的理智检查。
<?php
/**
* Test of the PHP Memcached extension.
*/
error_reporting(E_ALL & ~E_NOTICE);
$use = ini_get("memcached.use_sasl");
$have = Memcached::HAVE_SASL;
echo "Have SASL? $have\n";
echo "Using SASL? $use\n\n";
$mc = new Memcached();
$mc->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$mc->setSaslAuthData("user-1", "pass");
$mc->addServer("localhost", 11211);
$mc->set("foo", "Hello!");
$mc->set("bar", "Memcached...");
$arr = array(
$mc->get("foo"),
$mc->get("bar")
);
var_dump($arr);
?>
目前我还不知道如何使其适用于Zend Framework。我不熟悉它,所以可能需要一些时间来安装和弄清楚。虽然其中一个后端适用于SASL auth。似乎非常可行。