Heim Backend-Entwicklung PHP-Tutorial Verwendung von Phalapi-Caching und Redis-Erweiterung

Verwendung von Phalapi-Caching und Redis-Erweiterung

Dec 23, 2017 pm 04:28 PM
redis 缓存

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);
Nach dem Login kopieren

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
Nach dem Login kopieren

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

PHP-Caching-Mechanismus

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!

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Lösung für den Fehler 0x80242008 bei der Installation von Windows 11 10.0.22000.100 Lösung für den Fehler 0x80242008 bei der Installation von Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

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

Golang API-Caching-Strategie und -Optimierung Golang API-Caching-Strategie und -Optimierung May 07, 2024 pm 02:12 PM

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.

Caching-Mechanismus und Anwendungspraxis in der PHP-Entwicklung Caching-Mechanismus und Anwendungspraxis in der PHP-Entwicklung May 09, 2024 pm 01:30 PM

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.

So aktualisieren Sie Win11 Englisch 21996 auf vereinfachtes Chinesisch 22000_So aktualisieren Sie Win11 Englisch 21996 auf vereinfachtes Chinesisch 22000 So aktualisieren Sie Win11 Englisch 21996 auf vereinfachtes Chinesisch 22000_So aktualisieren Sie Win11 Englisch 21996 auf vereinfachtes Chinesisch 22000 May 08, 2024 pm 05:10 PM

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.

So finden Sie die von Win11 heruntergeladene Update-Datei. Geben Sie den Speicherort der von Win11 heruntergeladenen Update-Datei an So finden Sie die von Win11 heruntergeladene Update-Datei. Geben Sie den Speicherort der von Win11 heruntergeladenen Update-Datei an May 08, 2024 am 10:34 AM

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.

Wie verwende ich Caching im verteilten Golang-System? Wie verwende ich Caching im verteilten Golang-System? Jun 01, 2024 pm 09:27 PM

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.

PHP-Redis-Caching-Anwendungen und Best Practices PHP-Redis-Caching-Anwendungen und Best Practices May 04, 2024 am 08:33 AM

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.

Wie kann ich große Datensätze mit Golang zwischenspeichern? Wie kann ich große Datensätze mit Golang zwischenspeichern? Jun 03, 2024 am 11:56 AM

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.

See all articles