/ / Zend_Cache with Memcachier - zend-framework, caching, memcached

Zend_Cache z Memcachier - zend-framework, caching, memcached

Czy mogę używać memcachier z ZendFramework 1.12?

Dostawca, którego używam (AppFog), oferuje tylkoMemcachier (Memcached pojawi się wkrótce od 10 miesięcy) I moja aplikacja będzie wymagała dużo buforowania, gdy się uruchomi. Nie chcę trzymać się APC, więc nie mam innej dobrej alternatywy.

Odpowiedzi:

1 dla odpowiedzi № 1

Więc to tylko połowa odpowiedzi, postaram się dowiedzieć resztę. Nawiasem mówiąc, pracuję dla MemCachier, więc proszę napisz do nas maila na support@memcachier.com, jeśli masz więcej pytań.

PHP domyślnie zawiera dwa wiązania memcache: memcache i memcached. Pierwszy (memcache) jest własną implementacją procotolu memcache, podczas gdy drugi (memcached) jest powiązaniem php z biblioteką C ++ libmemcached.

Powiązane memcached dla php nie obsługuje SASLobecnie (od wersji 2.0.0). Niestety nie jest to udokumentowane. Jest to również opcjonalna część modułu memcached, więc musisz się upewnić, że jest on skompilowany na twoim komputerze (lub AppFog) z włączoną obsługą SASL. Z grubsza można to zrobić:

  1. Zainstaluj libmemcached. Użyłem wersji 1.0.14.
  2. Zainstaluj php-memcached. Pamiętaj, aby przekazać mu opcję „--enable-memcached-sasl” podczas uruchamiania ./configure.
  3. Podczas budowania obu z nich można sprawdzić poprawność danych wyjściowych „./configure”, aby upewnić się, że obsługa SASL jest rzeczywiście włączona, niestety w tej chwili może to być trudne.
  4. Edytuj plik php.ini. Umieść w nim następujący wiersz:

    [memcached]
    memcached.use_sasl = 1
    

Zrobiłem to wszystko na OSX 10.8, używając Homebrew. Jeśli tak jest w Twoim przypadku, następujące elementy powinny działać:

$ 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

Teraz, aby faktycznie korzystać ze wsparcia SASL, oto plik testowy, który to demonstruje i jest dobrym sprawdzeniem czystości.

<?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? $haven";
echo "Using SASL? $usenn";

$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);
?>

Dostosowanie tego do pracy w Zend Framework jestnieznany mi teraz. Nie jestem z tym zaznajomiony, więc może zająć trochę czasu, aby zainstalować i rozgryźć. Wydaje się to bardzo wykonalne, chociaż biorąc pod uwagę, że jeden z backendów działa z uwierzytelnianiem SASL.