我可以将 memcachier 与 ZendFramework 1.12 一起使用吗?
我正在使用的提供商(AppFog)仅提供 Memcachier(Memcached 即将在 10 个月后推出)而且我的应用程序在启动时需要大量缓存。我不想坚持使用 APC,所以我没有其他好的选择。
我可以将 memcachier 与 ZendFramework 1.12 一起使用吗?
我正在使用的提供商(AppFog)仅提供 Memcachier(Memcached 即将在 10 个月后推出)而且我的应用程序在启动时需要大量缓存。我不想坚持使用 APC,所以我没有其他好的选择。
所以这只是现在的一半答案,我会尝试找出其余的。顺便说一句,我在 MemCachier 工作,所以如果您有更多问题,请发送电子邮件至 support@memcachier.com。
PHP 默认包含两个 memcache 绑定:memcache 和 memcached。第一个 (memcache) 是它自己的 memcache 协议实现,而第二个 (memcached) 是与 libmemcached C++ 库的 php 绑定。
如今,php 的 memcached 绑定确实支持 SASL(从 2.0.0 版开始)。遗憾的是,它没有记录在案。它也是 memcached 模块的可选部分,因此您需要确保它在您的机器(或 AppFog)上编译并启用 SASL 支持。大致做到这一点的步骤是:
编辑你的 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 框架中工作。我不熟悉它,所以可能需要一些时间来安装和弄清楚。尽管考虑到其中一个后端与 SASL auth 一起使用,但这似乎非常可行。