Verwendung von Phalapi-Caching und Redis-Erweiterung
Caching wird von vielen Websites verwendet, insbesondere bei hoher Parallelität ist Caching unerlässlich. Dieser Artikel basiert auf Phalapi und erklärt die tatsächliche Verwendung von zwischengespeicherten Redis. Ich hoffe, dass er für alle hilfreich ist.
Vorwort
Wenn wir ein Projekt entwickeln, können wir auf viele Probleme stoßen, z. B. auf Nachrichten-Push, das Senden von E-Mails, das Senden von Textnachrichten und Fehler bei der Parallelität Lassen Sie uns als Nächstes über die tatsächliche Verwendung von zwischengespeicherten Redis zur Lösung praktischer Probleme sprechen und einen kurzen Blick auf das Redis-Erweiterungsdokument werfen und lesen Sie diesen Abschnitt.
1. Welche Probleme können gelöst werden?
Wenn wir eine Technologie verwenden, nutzen wir sie natürlich, um Probleme zu lösen Können wir bestimmte Probleme mithilfe der Caching-Technologie Redis lösen?
1.1 Cache-Ergebnismenge
Hier ist ein Beispiel und Sie werden verstehen, was zwischengespeicherte Ergebnismenge bedeutet, nachdem Sie es sich angesehen haben
//从缓存redis的clubcache库中查询club表where条件是city,city值是$city $cache = DI()->redis->get_Time('club'.'city'.$city,'clubcache'); //如果查询到了就直接返回缓存的结果 if($cache){ return $cache; } //如果不存在从数据库里面获取结果然后存入redis缓存key的条件和取值时一样,最后一个参数为过期时间 $rs = $this->getORM()->select('*')->where('city',$city)->fetchAll(); DI()->redis->set_Time('club'.'city'.$city,$rs,'clubcache',600);
Was wir oben tun, ist, die Ergebnisse 600 Sekunden lang zu speichern. Eine erneute Abfrage innerhalb von 600 Sekunden führt zu denselben Ergebnissen
1.2 Warteschlangenverarbeitung
Es gibt einen Vergleich in der von Redis verwendeten Zeit Die Schlüsselfunktion ist die Warteschlange
Lassen Sie uns zunächst einige spezielle Redis-Funktionen durchgehen
//写入队列左边 set_lPush //写入队列左边 如果value已经存在,则不添加 set_lPushx //写入队列右边 set_rPush //写入队列右边 如果value已经存在,则不添加 set_rPushx //读取队列左边 get_lPop //读取队列右边 get_rPop //读取队列左边 如果没有读取到阻塞一定时间 get_blPop //读取队列右边 如果没有读取到阻塞一定时间 get_brPop
Zum Beispiel, wenn wir Geschäfte wie Nachrichten-Push, E-Mail und Textnachrichten tätigen, Wir Die Anforderungsgeschwindigkeit einer Drittanbieter-Schnittstelle wird beispielsweise von der Drittanbieter-Schnittstelle bestimmt. Wenn diese in unser API-Geschäft integriert wird, sinkt die Geschwindigkeit des Benutzerzugriffs Um dieses Problem zu lösen, besteht die Lösung des Problems darin, dass der Warteschlangenprozess wie folgt abläuft:
Wenn wir eine Push-Anfrage vom Benutzer erhalten
nach links)
↓
Im Hintergrund läuft ein PHP-Skript, das die Warteschlange gelesen hat (Lesen von rechts erfolgt als „Last In Last Out“, Lesen von links erfolgt als „First In First Out“)
↓
Führen Sie dann die Push-Logik der Antwort aus.
Im Allgemeinen ist unser Skript ein toter Zyklus oder eine normale Shell-Anfrage. Wir verwenden die Daten, die die Daten nicht lesen können, um die Lösung zu finden zu den Unfähigen. Das Problem des zu schnellen Wertrecyclings
1.3 Temporäre Datenspeicherung
Temporäre Daten brauchen nicht allzu viele Erklärungen, ein Beispiel reicht aus
Zum Beispiel , wir bekommen den Bestätigungscode. Müssen wir den Bestätigungscode in der Bibliothek speichern? Ich denke, das ist nicht notwendig und die Datenbank ist nicht einfach, um abgelaufene Vorgänge auszuführen Wir verwenden Redis, um den Bestätigungscode in Redis zu speichern. Durch Angabe einer Ablaufzeit kann dieses Problem sehr gut gelöst werden
1.4 Datenbank
Die Verwendung von Redis als Datenbank ist eine relativ ausführliche Verwendung Sprechen Sie hier über meine Gedanken
Nachdem alle Dienste verteilt werden können, ist die Verteilung für die meisten Datenbanken nicht einfach, was dazu führt, dass viele Systeme in der Datenbank gespleißt und gestapelt werden Sie können den Cache verwenden, um die Ergebnismenge zu speichern. Diese Lösung ist jedoch praktisch und behandelt die Symptome und nicht die Grundursache. Bei der Diskussion über Kinderschuhe haben wir eine praktische Lösung gefunden, nämlich die Verwendung von Redis als erstes Datenbank und MySQL als Metadatendatenbank
Nach diesem Vorgang synchronisiert der Server automatisch die heißen Daten mit Redis und speichert die kalten Daten in MySQL. Wenn kalte Daten verwendet und in Redis gespeichert werden, sind dies die meisten Benutzer Operationen basieren im Wesentlichen auf Redis-Operationen.
Die Kosten einer solchen Implementierung sind relativ hoch. Die Implementierung der Redis-Datensynchronisierungskapselung, die Verwendung von Where-Abfragen usw. wird viel Aufwand betreiben In der späteren Phase plane ich eine allgemeine Erweiterung
2. Standardisierte Verwendung
Tatsächlich wurden die oben genannten Kategorien fast abgedeckt Okay, warum müssen Sie einen separaten Absatz herausnehmen, um über die Spezifikationen zu sprechen? Wenn Sie den Cache überprüfen müssen, sind alle Daten in einer Redis-Bibliothek gesammelt schmerzhaft
Aber Redis unterstützt mehrere Bibliotheken, daher sind eine Reihe von Spezifikationen erforderlich, um sie aufzuteilen. Hier werde ich mitteilen, wie ich sie verwende.
0 bis 10 Bibliotheken werden als normale Geschäftsbibliotheken verwendet. Das heißt, Push-Warteschlangen, temporäre Daten und jede Bibliothek speichert nur Daten für ein Unternehmen. Beispielsweise sind WeChat-Push-Daten in 5 Bibliotheken vorhanden, und E-Mail-Push-Daten sind in 6 Bibliotheken gespeichert. Temporäre Daten zum Senden von Bestätigungscodes werden in 3 gespeichert Bibliotheken usw. Wenn Sie der Meinung sind, dass 10 Bibliotheken nicht ausreichen, können Sie je nach Unternehmen
oder mehr 10 Bibliotheken als Cache-Bibliotheken hinzufügen, um die Ergebnissatzdaten jeder Tabelle oder andere Daten zu speichern
Die Namenskonvention aller Schlüssel muss Typ + Tabellenname + Bedingung haben
Verwandte Empfehlungen:
Beispielanalyse zur Verwendung der PHP-Datei-Cache-Klasse
Analyse zum Ausfall des Redis-Clusters
Das obige ist der detaillierte Inhalt vonVerwendung von Phalapi-Caching und Redis-Erweiterung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

1. Starten Sie das Menü [Start], geben Sie [cmd] ein, klicken Sie mit der rechten Maustaste auf [Eingabeaufforderung] und wählen Sie Als [Administrator] ausführen. 2. Geben Sie nacheinander die folgenden Befehle ein (kopieren und fügen Sie sie sorgfältig ein): SCconfigwuauservstart=auto, drücken Sie die Eingabetaste. SCconfigbitsstart=auto, drücken Sie die Eingabetaste. SCconfigcryptsvcstart=auto, drücken Sie die Eingabetaste. SCconfigtrustedinstallerstart=auto, drücken Sie die Eingabetaste. SCconfigwuauservtype=share, drücken Sie die Eingabetaste. netstopwuauserv, drücken Sie die Eingabetaste für netstopcryptS

Die Caching-Strategie in GolangAPI kann die Leistung verbessern und die Serverlast reduzieren. Häufig verwendete Strategien sind: LRU, LFU, FIFO und TTL. Zu den Optimierungstechniken gehören die Auswahl geeigneter Cache-Speicher, hierarchisches Caching, Invalidierungsmanagement sowie Überwachung und Optimierung. Im praktischen Fall wird der LRU-Cache verwendet, um die API zum Abrufen von Benutzerinformationen aus der Datenbank zu optimieren. Andernfalls kann der Cache nach dem Abrufen aus der Datenbank aktualisiert werden.

In der PHP-Entwicklung verbessert der Caching-Mechanismus die Leistung, indem er häufig aufgerufene Daten vorübergehend im Speicher oder auf der Festplatte speichert und so die Anzahl der Datenbankzugriffe reduziert. Zu den Cache-Typen gehören hauptsächlich Speicher-, Datei- und Datenbank-Cache. In PHP können Sie integrierte Funktionen oder Bibliotheken von Drittanbietern verwenden, um Caching zu implementieren, wie zum Beispiel Cache_get() und Memcache. Zu den gängigen praktischen Anwendungen gehören das Zwischenspeichern von Datenbankabfrageergebnissen zur Optimierung der Abfrageleistung und das Zwischenspeichern von Seitenausgaben zur Beschleunigung des Renderings. Der Caching-Mechanismus verbessert effektiv die Reaktionsgeschwindigkeit der Website, verbessert das Benutzererlebnis und reduziert die Serverlast.

Zuerst müssen Sie die Systemsprache auf die Anzeige in vereinfachtem Chinesisch einstellen und neu starten. Wenn Sie die Anzeigesprache zuvor auf vereinfachtes Chinesisch geändert haben, können Sie diesen Schritt natürlich einfach überspringen. Beginnen Sie als Nächstes mit dem Betrieb der Registrierung regedit.exe, navigieren Sie direkt zu HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage in der linken Navigationsleiste oder der oberen Adressleiste und ändern Sie dann den InstallLanguage-Schlüsselwert und den Standardschlüsselwert auf 0804 (wenn Sie ihn in Englisch ändern möchten). us, Sie müssen zunächst die Anzeigesprache des Systems auf en-us einstellen, das System neu starten und dann alles auf 0409 ändern) Sie müssen das System an dieser Stelle neu starten.

1. Doppelklicken Sie zunächst auf dem Desktop auf das Symbol [Dieser PC], um es zu öffnen. 2. Doppelklicken Sie dann mit der linken Maustaste, um [Laufwerk C] einzugeben. Systemdateien werden im Allgemeinen automatisch auf Laufwerk C gespeichert. 3. Suchen Sie dann den Ordner [Windows] auf dem Laufwerk C und doppelklicken Sie, um ihn aufzurufen. 4. Nachdem Sie den Ordner [Windows] aufgerufen haben, suchen Sie den Ordner [SoftwareDistribution]. 5. Suchen Sie nach der Eingabe den Ordner [Download], der alle Win11-Download- und Update-Dateien enthält. 6. Wenn wir diese Dateien löschen möchten, löschen Sie sie einfach direkt in diesem Ordner.

Im verteilten Go-System kann Caching mithilfe des Groupcache-Pakets implementiert werden. Dieses Paket bietet eine allgemeine Caching-Schnittstelle und unterstützt mehrere Caching-Strategien wie LRU, LFU, ARC und FIFO. Durch die Nutzung von Groupcache kann die Anwendungsleistung deutlich verbessert, die Backend-Last reduziert und die Systemzuverlässigkeit erhöht werden. Die spezifische Implementierungsmethode lautet wie folgt: Importieren Sie die erforderlichen Pakete, legen Sie die Cache-Pool-Größe fest, definieren Sie den Cache-Pool, legen Sie die Cache-Ablaufzeit fest, legen Sie die Anzahl gleichzeitiger Wertanforderungen fest und verarbeiten Sie die Ergebnisse der Wertanforderungen.

Redis ist ein leistungsstarker Schlüsselwert-Cache. Die PHPRedis-Erweiterung stellt eine API für die Interaktion mit dem Redis-Server bereit. Führen Sie die folgenden Schritte aus, um eine Verbindung zu Redis herzustellen sowie Daten zu speichern und abzurufen: Verbinden: Verwenden Sie die Redis-Klassen, um eine Verbindung zum Server herzustellen. Speicherung: Verwenden Sie die Set-Methode, um Schlüssel-Wert-Paare festzulegen. Abrufen: Verwenden Sie die get-Methode, um den Wert des Schlüssels abzurufen.

Die Verwendung von sync.Map in Go zum Zwischenspeichern großer Datensätze kann die Anwendungsleistung verbessern. Zu den spezifischen Strategien gehören: Erstellen eines Cache-Dateisystems und Verbessern der Leistung durch Zwischenspeichern von Dateisystemaufrufen. Erwägen Sie andere Caching-Strategien wie LRU, LFU oder benutzerdefiniertes Caching. Bei der Auswahl einer geeigneten Caching-Strategie müssen die Größe des Datensatzes, die Zugriffsmuster, die Größe des Cache-Elements und die Leistungsanforderungen berücksichtigt werden.
