Verwenden Sie PHP und Redis, um Caching zu implementieren und die Website-Leistung zu verbessern

PHPz
Freigeben: 2023-06-27 20:18:01
Original
816 Leute haben es durchsucht

Heutzutage sind Websites aus dem Leben der Menschen nicht mehr wegzudenken. Wenn der Website-Verkehr jedoch zunimmt, leidet häufig die Benutzererfahrung. Die Verbesserung der Website-Leistung ist zu einer wichtigen Aufgabe für Website-Administratoren und -Entwickler geworden. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und Redis Caching implementieren und so die Website-Leistung verbessern.

  1. Was ist Redis?

Redis ist ein speicherbasiertes Cache-Datenbankverwaltungssystem. Es kann als Datenbank, Cache und Nachrichtenbroker verwendet werden. Der Vorteil von Redis ist sein Hochgeschwindigkeitsspeicher- und -abrufmechanismus, der sogar höhere Geschwindigkeiten als Festplattenspeicher bieten kann. Darüber hinaus unterstützt Redis auch eine Vielzahl von Datenstrukturen, darunter Strings, Hashes, Listen, Mengen und geordnete Mengen.

  1. Anwendungsszenarien von Redis

Redis verfügt über mehrere Anwendungsszenarien in Webanwendungen, von denen das Caching das häufigste ist. Durch die Verwendung von Redis-Caching können die meisten Webanwendungen erhebliche Leistungsverbesserungen erzielen.

Zusätzlich zum Caching kann Redis auch zum Verarbeiten von Sitzungsdaten verwendet werden. Bei Websites mit mehreren Servern, die Sitzungsdaten gemeinsam nutzen müssen, können Sitzungsdaten mithilfe von Redis problemlos verwaltet werden, ohne dass eine datei- oder datenbankbasierte Speicherung erforderlich ist.

Darüber hinaus kann Redis auch für Nachrichtenbroker verwendet werden. Da Redis so schnell ist, eignet es sich ideal zum Erstellen von Echtzeitanwendungen wie Online-Spielen, Börsenkursen und Chat-Anwendungen.

  1. Redis mit PHP verwenden

PHP ist eine beliebte serverseitige Skriptsprache, die häufig bei der Entwicklung von Webanwendungen verwendet wird. Um Redis verwenden zu können, müssen wir eine PHP-Bibliothek verwenden, um mit Redis zu kommunizieren. Es gibt zwei Haupt-PHP-Bibliotheken für die Kommunikation mit Redis: die PHPredis-Erweiterung und die Predis-Bibliothek.

phpredis-Erweiterung wird vom Redis-Team bereitgestellt und ist mit PHP 5.3 und höher kompatibel. Andererseits ist die Predis-Bibliothek eine reine PHP-Implementierung der Redis-Bibliothek, die PHP 5.3 und höher unterstützt. Die Predis-Bibliothek ist sehr praktisch, da sie über Composer installiert und verwendet werden kann.

Die folgende Demo verwendet Redis über die PHPredis-Erweiterung und die Predis-Bibliothek.

3.1 Verwendung der PHPREDIS-Erweiterung

Zuerst müssen wir die PHPREDIS-Erweiterung installieren. Wenn Sie Ubuntu verwenden, können Sie es über den folgenden Befehl installieren:

sudo apt-get install php-redis
Nach dem Login kopieren

Nach Abschluss der Installation können wir über den folgenden Code eine Verbindung zu Redis herstellen:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
Nach dem Login kopieren

Sie können die verbundene IP und den Port in IP und Port ändern des Redis-Servers.

Nach erfolgreicher Verbindung können wir Daten von Redis mit der folgenden Methode speichern und abrufen:

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');
Nach dem Login kopieren

Wenn Daten in Redis vorhanden sind, enthält die Variable $value den von Redis abgerufenen Wert.

3.2 Verwendung der Predis-Bibliothek

Wenn Sie sich für die Verwendung der Predis-Bibliothek entscheiden, können Sie sie mit Composer zu Ihrem Projekt hinzufügen. Predis kann mit dem folgenden Befehl installiert werden:

composer require predis/predis
Nach dem Login kopieren

Die Methode zum Herstellen einer Verbindung zu Redis und zum Speichern und Abrufen von Daten ist die gleiche wie bei der PHPREDIS-Erweiterung:

// 连接Redis
$redis = new PredisClient(array(
    'scheme' => 'tcp',
    'host'   => '127.0.0.1',
    'port'   => 6379,
));

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');
Nach dem Login kopieren
  1. Implementierung des Redis-Cache

Cache wird normalerweise durch Speichern häufig aufgerufener Dateien gespeichert Es ist nicht erforderlich, häufig Daten aus der Originalquelle abzurufen, um dies zu erreichen. Der Cache kann im Arbeitsspeicher gespeichert werden, sodass schnell darauf zugegriffen werden kann.

Die Verwendung des Redis-Cache in PHP ist ein einfacher Vorgang. Es gibt zwei Hauptmodi für das Redis-Caching: Einzelschlüssel-Caching und Mehrfachschlüssel-Caching.

Single-Key-Caching ist der einfachste Caching-Modus. Es speichert einen einzelnen Wert in Redis und ruft diesen Wert nur bei Bedarf ab. Hier ist der Code für eine Single-Key-Cache-Implementierung:

function get_data_from_cache_or_db($key) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $value = $redis->get($key);

    if ($value === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $value = get_data_from_database($key);

        // 只有当数据从数据库中检索时,才将数据存储到缓存中
        $redis->set($key, $value);
    }

    return $value;
}
Nach dem Login kopieren

Wenn im obigen Code kein Wert im Cache vorhanden ist, werden die Daten aus der Datenbank abgerufen und in Redis gespeichert. So können die Daten beim nächsten Besuch direkt von Redis abgerufen werden.

Andererseits ist das Multiple-Key-Caching eine fortgeschrittenere Form des Redis-Cachings. Dieser Modus wird durch die Speicherung mehrerer Schlüssel in einem Redis-Hash implementiert. In diesem Modus kann jede Anfrage Daten zwischenspeichern und abrufen, indem sie eine einzelne Kennung übergibt. Das Folgende ist der Implementierungscode für das Zwischenspeichern mehrerer Schlüssel:

function get_data_from_cache_or_db($id) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $cached_data = $redis->hget('cached_data', $id);

    if ($cached_data === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $data = get_data_from_database($id);

        // 保存数据到缓存哈希
        $redis->hset('cached_data', $id, serialize($data));
    } else {
        $data = unserialize($cached_data);
    }

    return $data;
}
Nach dem Login kopieren

Im obigen Code lautet der Schlüsselname des Redis-Hashs „cached_data“, und wir speichern jedes Datenelement im Hash als Schlüssel mit seiner eindeutigen Kennung. Beim Zwischenspeichern von Daten speichern wir ihren serialisierten Wert in einem Redis-Hash mithilfe der „hset“-Methode in Redis.

Beim Abrufen von Daten aus dem Cache verwenden wir die Methode „hget“, um den zwischengespeicherten Wert abzurufen. Wenn der Wert nicht vorhanden ist, wird „false“ zurückgegeben. Andernfalls deserialisieren wir den zwischengespeicherten Wert und geben ihn zurück.

  1. Zusammenfassung

Aus diesem Artikel lernen Sie die Vorteile und Anwendungsszenarien von Redis kennen. Wir haben auch die Verwendung von Redis mit PHP behandelt und uns die verschiedenen Möglichkeiten zur Implementierung von Redis-Caching angesehen.

Die Verwendung des Redis-Cache kann die Leistung Ihrer Webanwendungen erheblich verbessern. Daten werden im Speicher gespeichert, sodass schneller auf sie zugegriffen werden kann. Natürlich ist Redis keine Caching-Lösung, die für alle Webanwendungen geeignet ist, aber wenn große Datenmengen verarbeitet werden müssen und eine schnelle Reaktion erforderlich ist, ist Redis-Caching eine leistungsstarke Lösung.

Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP und Redis, um Caching zu implementieren und die Website-Leistung zu verbessern. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!