Heim > PHP-Framework > Workerman > Hauptteil

So verwenden Sie Memcached für das Daten-Caching in Workerman

WBOY
Freigeben: 2023-11-07 15:43:02
Original
824 Leute haben es durchsucht

So verwenden Sie Memcached für das Daten-Caching in Workerman

So verwenden Sie Memcached für das Daten-Caching in Workerman

Memcached ist ein Open-Source-Caching-System für verteilten Speicher, das häufig zur Verbesserung der Leistung und Skalierbarkeit von Webanwendungen verwendet wird. Workerman ist ein leistungsstarkes PHP-Socket-Framework, mit dem Echtzeit-Kommunikationsanwendungen erstellt werden können. In diesem Artikel wird die Verwendung von Memcached für das Daten-Caching in Workerman vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Memcached installieren und konfigurieren

Bevor Sie beginnen, müssen Sie Memcached installieren und konfigurieren. Memcached kann über den folgenden Befehl auf einem Linux-System installiert werden:

sudo apt-get install memcached
Nach dem Login kopieren

Nach Abschluss der Installation müssen Sie die Konfigurationsdatei /etc/memcached.conf bearbeiten, die Überwachungs-IP und die Portnummer festlegen und die Speichergröße angeben.

-d
-p 11211
-l 127.0.0.1
-m 128
Nach dem Login kopieren

Speichern Sie die Konfigurationsdatei und starten Sie den Memcached-Dienst neu.

2. Workerman installieren

Als nächstes müssen Sie das Workerman-Framework installieren. Sie können es mit Composer mit dem folgenden Befehl installieren:

composer require workerman/workerman
Nach dem Login kopieren

3. Schreiben Sie den Code zur Verwendung von Memcached

  1. Erstellen Sie eine Datei mit dem Namen „cache.php“ und schreiben Sie den folgenden Code:
<?php

require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;
use WorkermanProtocolsHttp;

$worker = new Worker('http://0.0.0.0:8000');

$worker->onMessage = function ($connection, $request) {
    // 先尝试从缓存中获取数据
    $cache = new Memcached();
    $cache->addServer('127.0.0.1', 11211);
    $data = $cache->get($request->path());

    if ($data === false) {
        // 缓存中不存在数据,则从数据库中获取数据
        $data = get_data_from_database($request->path());

        // 将数据存入缓存
        $cache->set($request->path(), $data, 86400); // 缓存有效期为24小时
    }

    // 返回数据给客户端
    Http::header('Content-Type: application/json');
    Http::header('Cache-Control: max-age=86400'); // 设置浏览器缓存时间为24小时
    $connection->send(json_encode($data));
};

function get_data_from_database($path) {
    // 从数据库中获取数据的逻辑,此处省略
    return [
        'path' => $path,
        'data' => 'some data'
    ];
}

Worker::runAll();
Nach dem Login kopieren
  1. Führen Sie den folgenden Befehl im Befehl aus Zeile, Starten Sie den Dienst:
php cache.php start
Nach dem Login kopieren

4. Testcode

Sie können einen Browser oder andere Tools verwenden, um HTTP-Anfragen zu senden, um die Daten-Caching-Funktion von Memcached zu testen. Wenn Sie beispielsweise auf http://localhost:8000/foo zugreifen, werden die Daten aus der Datenbank abgerufen und im Cache gespeichert. Greifen Sie erneut auf http://localhost:8000/foo zu und die Daten werden direkt aus dem Cache abgerufen.

Durch die oben genannten Schritte haben wir Memcached erfolgreich für die Datenzwischenspeicherung in Workerman verwendet. Die Beispiele im Code dienen nur als Referenz und müssen bei der Verwendung in der Praxis entsprechend der spezifischen Geschäftslogik angepasst werden. Gleichzeitig müssen Sie auf den Schutz der Sicherheit des Memcached-Dienstes achten, um böswillige Vorgänge durch unbefugte Besucher zu verhindern.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Memcached für das Daten-Caching in Workerman. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage