我可以在ZendFramework 1.12中使用memcachier嗎?Zend_Cache與Memcachier
我正在使用的提供程序(AppFog)僅提供Memcachier(Memcached即將從10個月起即將推出)並且我的應用程序在啓動時需要大量緩存。我不想堅持APC,所以我沒有其他好的選擇。
我可以在ZendFramework 1.12中使用memcachier嗎?Zend_Cache與Memcachier
我正在使用的提供程序(AppFog)僅提供Memcachier(Memcached即將從10個月起即將推出)並且我的應用程序在啓動時需要大量緩存。我不想堅持APC,所以我沒有其他好的選擇。
所以這只是現在的一半答案,我會試圖找出其餘的。順便說一下,我爲MemCachier工作,如果您有更多問題,請發郵件給我們[email protected]。
PHP默認包含兩個memcache綁定:memcache和memcached。第一個(memcache)是它自己實現的memcache procotol,而第二個(memcached)是一個綁定到libmemcached C++庫的php。
對於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認證,但看起來非常可行。
試試看看? – Oldskool
大聲笑我沒有嘗試過這個選項,但想知道是否有一些解決方法,因爲memcachier使用默認的memcached類不支持的SASL身份驗證,我必須在常規編碼中使用第三方類,但在SF我不知道..爲有趣的評論 –