2009-06-11 12 views
5

In unserer aktuellen Verwendung von Memcached, stoßen wir auf Probleme in einem Massenserver, da so viel Zeit für die Einrichtung und den Abbau von Verbindungen zu unserem Memcache-Server benötigt wird. Würde die Verwendung persistenter Verbindungen zur memcached-Hilfe dieses Problem beheben?Persistente Verbindungen zu memcached in PHP

Auch, was ist der bevorzugte Weg, um dauerhafte Memcahced-Verbindungen zu verbinden und zu verwenden? Ich dachte an einen „pool_size“ variable Einstellung dann die Wahl zufällig aus 1-$POOL_SIZE und die Verwendung dieser Verbindung

$mem = new Memcached(rand(1, $pool_size)); 

Entweder ich an der falschen Stelle suchen oder es gibt nicht viele Informationen zu diesem Thema gibt.

+2

Ist es wirklich notwendig, eine zufällige Verbindung auszuwählen? Wäre es nicht besser, nur die erste verfügbare auszuwählen? –

+0

Ich verstehe nicht, was 'zuerst verfügbar' bedeutet. Wie würde das funktionieren? @jW. Hast du das jemals herausgefunden? – ficuscr

Antwort

1

Der PHP-Client behandelt keine persistenten Verbindungen. Sie müssen entweder Ihre Pooling-Idee verwenden oder einen memcached-Client von Drittanbietern für PHP verwenden, der persistente Verbindungen unterstützt.

wie diese:

http://github.com/andreiz/php-memcached/tree/master

+5

Sieht aus wie der Standard pecl memcache Client persistente Verbindungen für eine lange Zeit unterstützt: http://www.php.net/manual/en/memcache.pconnect.php –

+1

@Frank, Es gibt einen Unterschied zwischen Memcache und MemcacheD (Hervorhebung auf D) –

+4

In memcached müssen Sie eine persistente ID angeben http://www.php.net/manual/en/memcached.construct.php – srcspider

1

Ich habe gelesen, dass persistente Verbindungen Funktion in der "Memcached" PHP-Erweiterung gebrochen.

Erstens: Die "persistente" Verbindung wird nicht zerstört. (Das ist in Ordnung.)

Zweitens: wenn Sie versuchen, es wieder zu verwenden, erstellt es ein neues! (Dies ist schlecht!)

Ergebnis: Speicherlecks, zunehmend verbrauchen alle verfügbaren RAM.

prüfen: http://brian.moonspot.net/php-memcached-issues

Wie gesagt, ich habe das selbst nicht erlebt - ich habe gerade gelesen, diese Informationen in dem verlinkten Artikel.

3

Sowohl pecl/memcache als auch pecl/memcached unterstützen persistente Verbindungen pro Prozess. Der Fehler existiert jedoch zu diesem Zeitpunkt in pecl/memcached.

+1

Diese denke ich ... https://bugs.php.net/ bug.php? id = 59191 ... noch 6 Jahre später geöffnet? Ich bin sehr verwirrt von Memcached persistente Verbindungen. – ficuscr

Verwandte Themen