Heim Backend-Entwicklung PHP-Tutorial Installation und Nutzung von php-Memcached

Installation und Nutzung von php-Memcached

Nov 21, 2016 pm 05:34 PM
memcached php

1. Einführung und Installation

Memcached ist ein leistungsstarkes verteiltes Speicherobjekt-Caching-System, das normalerweise zur Reduzierung des Datenbankladedrucks verwendet wird, um die Reaktionsgeschwindigkeit dynamischer Webanwendungen zu verbessern.

Diese Erweiterung nutzt die von der libmemcached-Bibliothek bereitgestellte API, um mit dem Memcached-Server zu interagieren. Es bietet auch einen Sitzungshandler (im Cache gespeichert).

Informationen zur Memcached-Installation finden Sie in diesem Artikel: Installation und Konfiguration von Memcached in Ubuntu.

Bevor Sie die PHP-Erweiterung memcached installieren, müssen Sie libmemcached installieren, die lokale C/C-Client-Bibliothek von memcached.

Bevor Sie libmemcached installieren, müssen Sie zunächst libcloog-ppl0 installieren, andernfalls tritt während des Kompilierungs- und Installationsprozesses ein Fehler auf:

sudo apt-get install libcloog-ppl0
Nach dem Login kopieren

Laden Sie es dann von hier herunter: http://libmemcached. org/libMemcached.html Entpacken Sie das erforderliche libmemcached-Quellcode-Installationspaket in das angegebene Verzeichnis, geben Sie das Verzeichnis ein und führen Sie dann die folgenden Anweisungen aus:

./configure --prefix=/usr/local/libmemcached
make
sudo make install
Nach dem Login kopieren

Anschließend können Sie die erforderliche PHP-Memcached-Erweiterung installieren Quellcode von hier Installationspaket: http://pecl.php.net/package/memcached, entpacken Sie es in das angegebene Verzeichnis, geben Sie das Verzeichnis ein und führen Sie dann die folgenden Anweisungen aus:

phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
make
sudo make install
Nach dem Login kopieren

Ein Fehler kann während des Installationsprozesses gemeldet werden:

未知类型名称:memcached_server_instance_st
Nach dem Login kopieren

führt dazu, dass make fehlschlägt. Die Lösung lautet wie folgt:

Suchen Sie diese Datei im Dekomprimierungsverzeichnis der Memcached-Erweiterung: php_libmemcached_compat.h und dann Fügen Sie die folgende Zeile hinzu

typedef const struct memcached_server_st *memcached_server_instance_st;
Nach dem Login kopieren

Machen Sie es noch einmal und es wird in Ordnung sein.

Fügen Sie nach erfolgreicher Installation extension=memcacached in php.ini hinzu, starten Sie dann Apache neu, überprüfen Sie phpinfo und sehen Sie sich den folgenden Abschnitt an

Installation und Nutzung von php-Memcached

Beweisen Sie, dass die Installation erfolgreich war.

2. Timeout

Einige Speicherbefehle enthalten einen Ablaufwert (im Zusammenhang mit einem Element oder einer Client-Vorgangsanforderung), wenn sie an den Server gesendet werden. Für alle derartigen Verwendungen kann der tatsächlich gesendete Wert ein Unix-Zeitstempel (eine ganze Zahl von Sekunden seit dem 1. Januar 1970 bis zur Ablaufzeit) oder eine Zahl in Sekunden von jetzt an sein. Im letzteren Fall darf diese Anzahl von Sekunden 60×60×24×30 (die Anzahl von Sekunden in 30 Tagen) nicht überschreiten; wenn der ungültige Wert größer als dieser Wert ist, wird er vom Server als echter Unix-Zeitstempel behandelt ein Offset von der aktuellen Zeit.

Wenn der Ablaufwert auf 0 (Standard) gesetzt ist, läuft das Element nie ab (es kann jedoch vom Server gelöscht werden, um Platz für andere neue Elemente zu reservieren).

3. Rückrufe

1. Ergebnisrückrufe

Ergebnisrückrufe sind das Ergebnis nach dem Abrufen des Elements über Memcached::getDelayed() oder Memcached::getDelayedBykey(). Methode wird einmal für jedes Element in der Menge aufgerufen. Die Rückruffunktion kann ein Memcached-Objekt und durch ein Array beschriebene Elementinformationen empfangen. Diese Rückruffunktion muss keine Informationen zurückgeben.

Beispiel #1 Ergebnis-Callback-Beispiel

<?php
    $m = new Memcached();
    $m->addServer(&#39;localhost&#39;, 11211);
    $items = array(
        &#39;key1&#39; => &#39;value1&#39;,
        &#39;key2&#39; => &#39;value2&#39;,
        &#39;key3&#39; => &#39;value3&#39;
    );
    $m->setMulti($items);
    $m->getDelayed(array(&#39;key1&#39;, &#39;key3&#39;), true, &#39;result_cb&#39;);
    function result_cb($memc, $item)
    {
        var_dump($item);
    }
?>
Nach dem Login kopieren

Die Ausgabe der obigen Routine ist ähnlich wie:

array(3) {
  ["key"]=> string(4) "key1"
  ["value"]=> string(6) "value1"
  ["cas"]=> float(49)
}
array(3) {
  ["key"]=> string(4) "key3"
  ["value"]=> string(6) "value3"
  ["cas"]=> float(50)
}
Nach dem Login kopieren

2. Lesen Sie den Cache-Callback durch

Durchlesen Der Cache-Callback wird aufgerufen, wenn ein Element nicht vom Server abgerufen wird. Diese Rückruffunktion empfängt drei Parameter: das Memcached-Objekt, den angeforderten Schlüssel und eine als Referenz übergebene Wertvariable. Diese Rückruffunktion ist für die Entscheidung verantwortlich, einen Standardwert festzulegen, wenn der Schlüssel keinen Wert hat, indem sie „true“ oder „false“ zurückgibt. Wenn der Rückruf „true“ zurückgibt, speichert Memcached den im „ausgehenden Parameter“ (der als Referenz übergebenen Wertvariablen) gespeicherten Wert auf dem Memcached-Server und gibt ihn an die ursprüngliche aufrufende Funktion zurück. Nur Memcached::get() und Memcached::getByKey() unterstützen diese Art von Rückruf, da das Memcache-Protokoll die Bereitstellung von Informationen über nicht abgerufene Schlüssel bei der Anforderung mehrerer Schlüssel nicht unterstützt.

Beispiel #2 Rückrufbeispiel durchlesen

<?php
    $m = new Memcached();
    $m->addServer(&#39;localhost&#39;, 11211);
    $profile_info = $m->get(&#39;user:&#39;.$user_id, &#39;user_info_cb&#39;);
    function user_info_cb($memc, $key, &$value)
    {
        $user_id = substr($key, 5);
        /* 从数据库读取个人信息 */
        /* ... */
        $value = $profile_info;
        return true;
    }
?>
Nach dem Login kopieren

4. Sitzungsunterstützung

memcached bietet einen benutzerdefinierten Sitzungsprozessor, der zum Speichern von Benutzersitzungsdaten im Memcached-Server verwendet werden kann . Intern wird eine vollständig separate Memcached-Instanz verwendet, sodass Sie bei Bedarf einen anderen Serverpool einrichten können. Sitzungsschlüssel werden unter dem Präfix memc.sess.key gespeichert. Beachten Sie dies daher bitte, wenn Sie denselben Serverpool für Sitzungen und normales Caching verwenden. Anmerkung: Ein weiterer Grund, warum die Sitzung vom normalen Cache getrennt wird, besteht darin, dass Ihre Sitzung möglicherweise aus dem Cache geworfen wird, wenn der normale Cache den zwischengespeicherten Server füllt, was dazu führt, dass der Benutzer aus unerklärlichen Gründen getrennt wird.

session.save_handler ist auf „memcached“ gesetzt, um den Sitzungsprozessor von „memcached“ zu aktivieren. session.save_path definiert einen durch Kommas getrennten Sitzungscache-Serverpool im Hostnamen:Port-Stil, zum Beispiel: „sess1:11211, sess2:11211“.

5. Die Memcached-Klasse

stellt den Memcached-Dienst dar Clusterverbindungen.

Memcached::add – Ein Element zu einem neuen Schlüssel hinzufügen

Memcached::addByKey – Ein Element zu einem neuen Schlüssel auf dem angegebenen Server hinzufügen

Memcached::addServer — Fügen Sie einen Server zum Serverpool hinzu

Memcached::addServers – Mehrere Server zum Serverpool hinzufügen

Memcached::append – Daten an vorhandene Elemente anhängen

Memcached::appendByKey – Daten zum angegebenen Server hinzufügen Daten anhängen nachdem das Element existiert

Memcached::cas – Werte vergleichen und austauschen

Memcached::casByKey — Werte auf dem angegebenen Server vergleichen und austauschen

Memcached::__construct — Erstellen Sie eine Memcached-Instanz

Memcached::decrement — Verringern Sie den Wert eines numerischen Elements

Memcached::decrementByKey — Verringern Sie den Wert eines numerischen Elements, der auf einem bestimmten Server gespeichert ist

Memcached: :delete – Ein Element löschen

Memcached::deleteByKey – Ein Element vom angegebenen Server löschen

Memcached::deleteMulti – Mehrere Elemente löschen

Memcached::deleteMultiByKey – Mehrere Elemente von einem bestimmten Server löschen

Memcached::fetch – Nächstes Ergebnis abrufen

Memcached::fetchAll – Alle verbleibenden Ergebnisse abrufen

Memcached::flush – Ungültig machen alle Elemente im Cache

Memcached::get – Element abrufen

Memcached::getAllKeys – Ruft die auf allen Servern gespeicherten Schlüssel ab

Memcached::getByKey – Elemente abrufen von einem angegebenen Server

Memcached::getDelayed – Mehrere Elemente von einem angegebenen Server anfordern

Memcached::getDelayedByKey – Mehrere Elemente von einem angegebenen Server anfordern

Memcached:: getMulti — Mehrere Elemente abrufen

Memcached::getMultiByKey — Mehrere Elemente von einem bestimmten Server abrufen

Memcached::getOption — Optionswert von Memcached abrufen

Memcached::getResultCode — Gibt den Ergebniscode der letzten Operation zurück

Memcached::getResultMessage — Gibt die Ergebnisbeschreibungsnachricht der letzten Operation zurück

Memcached::getServerByKey — Ruft die durch einen Schlüssel zugeordneten Serverinformationen ab

Memcached::getServerList – Ruft die Serverliste im Serverpool ab

Memcached::getStats – Ruft die Statistiken des Serverpools ab

Memcached::getVersion – Ruft die Versionen aller ab Server im Serverpool Information

Memcached::increment – ​​Erhöhen Sie den Wert eines numerischen Elements

Memcached::incrementByKey – Erhöhen Sie den Wert eines numerischen Elements, der auf einem bestimmten Server gespeichert ist

Memcached::isPersistent – ​​Prüfen, ob eine dauerhafte Verbindung zum Memcache verwendet wird

Memcached::isPristine – Prüfen, ob die Instanz kürzlich erstellt wurde

Memcached::prepend – Daten vorne anhängen eines vorhandenen Elements

Memcached::prependByKey – Daten einem vorhandenen Element auf einem bestimmten Server voranstellen

Memcached::quit – Alle offenen Verbindungen schließen

Memcached::replace – Ersetzen Sie das vorhandene Element unter dem Schlüsselelement

Memcached::replaceByKey – Ersetzen Sie das Element unter einem vorhandenen Schlüssel auf einem bestimmten Server

Memcached::resetServerList – Löscht alle Server aus der Serverliste

Memcached::set – Ein Element speichern

Memcached::setByKey – Ein Element auf einem bestimmten Server speichern

Memcached::setMulti – Mehrere Elemente speichern

Memcached ::setMultiByKey – Mehrere Elemente auf einem bestimmten Server speichern

Memcached::setOption – Eine Memcached-Option festlegen

Memcached::setOptions – Memcached-Optionen festlegen

Memcached::setSaslAuthData – Legen Sie die Anmeldeinformationen fest, die für die Authentifizierung verwendet werden sollen

Memcached::touch – Legen Sie einen neuen Ablauf für ein Element fest

Memcached::touchByKey – Legen Sie einen neuen Ablauf für ein Element auf einem bestimmten Server fest


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles