2013-01-01 42 views
2

我可以在ZendFramework 1.12中使用memcachier嗎?Zend_Cache與Memcachier

我正在使用的提供程序(AppFog)僅提供Memcachier(Memcached即將從10個月起即將推出)並且我的應用程序在啓動時需要大量緩存。我不想堅持APC,所以我沒有其他好的選擇。

+1

試試看看? – Oldskool

+0

大聲笑我沒有嘗試過這個選項,但想知道是否有一些解決方法,因爲memcachier使用默認的memcached類不支持的SASL身份驗證,我必須在常規編碼中使用第三方類,但在SF我不知道..爲有趣的評論 –

回答

1

所以這只是現在的一半答案,我會試圖找出其餘的。順便說一下,我爲MemCachier工作,如果您有更多問題,請發郵件給我們[email protected]

PHP默認包含兩個memcache綁定:memcache和memcached。第一個(memcache)是它自己實現的memcache procotol,而第二個(memcached)是一個綁定到libmemcached C++庫的php。

對於php的memcached綁定最近支持SASL(從版本2.0.0開始)。可悲的是它沒有記錄。它也是memcached模塊的一個可選部分,所以您需要確保在啓用SASL支持的情況下在您的機器(或AppFog)上編譯它。大致這樣做的步驟如下:

  1. 安裝libmemcached。我使用1.0.14版本。
  2. 安裝php-memcached。確保在運行./configure時將「--enable-memcached-sasl」選項傳遞給它。
  3. 在構建這兩者時,您可以理智地檢查「./configure」的輸出以確保確實啓用了SASL支持,可悲的是現在它可能會非常棘手。
  4. 編輯你的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認證,但看起來非常可行。

相關問題