Frage

1)
Ich verstehe, kann ich das nennen

$memcache_obj = memcache_connect('memcache_host', 11211);

in den Header-Dateien von meiner Seite ohne Auswirkungen auf den Seiten, die memcache nicht verwenden aber was ist das

$memcache->connect('127.0.0.1', 11211);

Sollte dies auf einer Seite für Seite aufgerufen werden?


2)
was ist, wenn der Server neuen Caches nicht über genügend Speicher zu schreiben und memcache versucht, einen Cache zu speichern?


3)
Ich weiß, Schlüssel bis zu einer 30-tägigen Lebensdauer haben kann, Gibt es eine Möglichkeit, alle Schlüssel aus dem Speicher zu leeren, besonders nützlich für die Testphase?

4)
Auch dieser Code wird die erste Variable verbindet, so zum Beispiel, wenn ich 5 Abschnitte auf einer Seite, die / Update hinzufügen / löschen von memcache, muss ich diese Verbindung jedes Mal ausgeführt werden, oder ist es möglich, 1-mal zu verbinden und alles tun, pro Seite zu laden?

memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30)

5) Gibt es eine Funktion oder etwas ähnliches zu zeigen, wie viel Speicher verfügbar ist und auf einer PHP-Seite verwendet?

War es hilfreich?

Lösung

  1. ja, werden keine Netzanrufe, bis ein Versuch gemacht, zu holen, löschen, etc ..., so dass es nicht schaden, das Objekt bei zuzuteilen es gebraucht wird. (EDIT: Ich war hier der „Memcached“ -Erweiterung zu denken, stellt sich heraus, die „memcache“ -Erweiterung ist in der Tat eine Verbindung zum memcache Server öffnen, obwohl der Hit höchstens vernachlässigbare ist)

  2. memcache fällt am wenigsten genutzte Elemente für das neue Objekt, um Platz zu versuchen

  3. $ memcache_obj-> flush ();

  4. verbinden muss nur einmal pro Skript laufen passieren, am einfachsten, die Verbindung am oberen Rand der Seite oder in einer Klasse constructer

  5. platzieren
  6. $ memcache_obj-> getStats () http: // www.php.net/manual/en/function.memcache-getstats.php

Andere Tipps

Jason beantwortet Ihre Fragen sehr gut, aber ich dachte, dass ich ein paar Notizen hinzufügen würde:

2) Beachten Sie, wenn Sie versuchen, mehr zu speichern als 1 MB (Standard) in einen Schlüssel der memcache Erweiterung wird ein FALSCH Wert zurück. Es wird auch FALSE zurückgeben, wenn es keinen Schlüssel aus irgendeinem Grunde schreiben kann.

3) Tasten können haben> 30 Tage Lebensdauer (TTL). Fügen Sie einfach die TTL auf die aktuelle Zeit und verwenden, die als TTL. Mit Ihrem Beispiel Anruf, es könnte so etwas wie diese (codiert für Klarheit):

$ttl = 60*60*24*60; // 60 days
$newTTL = time()+$ttl;
memcache_set($memcache_obj, 'cache_key', 'some data', 0, $newTTL)

5) Wenn Sie über PHP-Speicher sprechen dann wird memory_get_usage() Sie bekommen, was Sie wollen. Memcache-Speicher ist ein wenig schwerer zu bekommen, aber der getStats() Anruf verwendet, wird Sie in der richtigen Richtung starten.

  1. http://uk3.php.net/manual/en /function.memcache-connect.php legt nahe, dass memcache_connect () die gleiche ist wie eine Memcache Instanziieren und Aufrufen connect () auf sie
  2. http://code.google.com/p/memcached / wiki / FAQ # What_is_memcached% 27s_cache ? sagt: „Wenn der Server nicht genügend Arbeitsspeicher ist, abgelaufen Platten werden zunächst ersetzt, dann ist die ältesten nicht verwendeten Platten gehen weiter.“
  3. Starten Sie die Memcached-Instanz, oder rufen Sie bündig , welche alle Cache-Elemente auf dem Server ungültig
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top