Inhaltsverzeichnis
Antwortinhalt:
Heim Backend-Entwicklung PHP-Tutorial Redis-Caching-Strategie

Redis-Caching-Strategie

Sep 06, 2016 am 08:57 AM
mysql php redis

Bei der Verwendung von Redis zum Zwischenspeichern von Daten lautet die Idee des Cache-Designs wie folgt:
Wenn Sie Daten abrufen, rufen Sie zuerst die Daten aus dem Cache ab. Wenn die erhaltenen Daten leer sind, fragen Sie die Datenbank ab. und dann erste Abfrage Die empfangenen Daten werden in Redis zwischengespeichert und dann werden die Daten zurückgegeben
Aber jetzt habe ich zwei Fragen an Sie:

  1. Wenn das Ergebnis der Abfrage in der Datenbank leer ist, werden die Daten nicht zwischengespeichert und können daher nicht aus dem Cache abgerufen werden. Dann wird bei jedem Abruf der Daten eine Datenbankabfrage durchgeführt. Wie soll dies optimiert werden?

  2. Wie soll mit dem Cache umgegangen werden, wenn Daten aktualisiert werden?

Ich habe einige unausgereifte Vorstellungen zu diesen beiden Themen. Ich möchte alle bitten, mir einen Rat zu geben, ob es machbar ist und ob es einen besseren Weg gibt, damit umzugehen:

Wenn bei der ersten Frage keine Daten aus der Datenbankabfrage abgerufen werden, wird ein fester Standardwert (z. B. Zeichenfolge: „nodata“) zwischengespeichert, um anzuzeigen, dass beim nächsten Abruf der Daten keine Daten vorhanden sind Im Cache wird dieser feste Wert abgerufen. Wenn der Wert angibt, dass keine Daten vorhanden sind, wird er direkt leer zurückgegeben, ohne die Datenbank erneut abzufragen

Für die zweite Frage besteht die aktuelle Idee darin, dass, wenn die aktualisierten Daten nicht besonders wichtig sind, die Daten in die Datenbank geschrieben und die entsprechenden Daten direkt im Cache aktualisiert werden können Wenn die aktualisierten Daten jedoch besonders wichtig sind (z. B. Geld), wird der entsprechende Cache direkt geleert, nachdem die Daten das nächste Mal in die Datenbank geschrieben wurden Um die neuesten Daten zu erhalten, müssen Sie die Datenbank abfragen.

Antwortinhalt:

Bei der Verwendung von Redis zum Zwischenspeichern von Daten lautet die Idee des Cache-Designs wie folgt:
Wenn Sie Daten abrufen, rufen Sie zuerst die Daten aus dem Cache ab. Wenn die erhaltenen Daten leer sind, fragen Sie die Datenbank ab. und dann erste Abfrage Die empfangenen Daten werden in Redis zwischengespeichert und dann werden die Daten zurückgegeben
Aber jetzt habe ich zwei Fragen an Sie:

  1. Wenn das Ergebnis der Abfrage in der Datenbank leer ist, werden die Daten nicht zwischengespeichert und können daher nicht aus dem Cache abgerufen werden. Dann wird bei jedem Abruf der Daten eine Datenbankabfrage durchgeführt. Wie soll dies optimiert werden?

  2. Wie soll mit dem Cache umgegangen werden, wenn Daten aktualisiert werden?

Ich habe einige unausgereifte Vorstellungen zu diesen beiden Themen. Ich möchte alle bitten, mir einen Rat zu geben, ob es machbar ist und ob es einen besseren Weg gibt, damit umzugehen:

Wenn bei der ersten Frage keine Daten aus der Datenbankabfrage abgerufen werden, wird ein fester Standardwert (z. B. Zeichenfolge: „nodata“) zwischengespeichert, um anzuzeigen, dass beim nächsten Abruf der Daten keine Daten vorhanden sind Im Cache wird dieser feste Wert abgerufen. Wenn der Wert angibt, dass keine Daten vorhanden sind, wird er direkt leer zurückgegeben, ohne die Datenbank erneut abzufragen

Für die zweite Frage besteht die aktuelle Idee darin, dass, wenn die aktualisierten Daten nicht besonders wichtig sind, die Daten in die Datenbank geschrieben und die entsprechenden Daten direkt im Cache aktualisiert werden können Wenn die aktualisierten Daten jedoch besonders wichtig sind (z. B. Geld), wird der entsprechende Cache direkt geleert, nachdem die Daten das nächste Mal in die Datenbank geschrieben wurden Um die neuesten Daten zu erhalten, müssen Sie die Datenbank abfragen.

  1. Sie benötigen eine Möglichkeit (z. B. natürlich nullbare Typen oder und-Typen), um zwischen diesen beiden Fällen zu unterscheiden. Wenn beispielsweise Daten vorhanden sind, wird darin eine JSON-Liste [{...}, {...}] gespeichert. Wenn keine Daten vorhanden sind, wird natürlich [] gespeichert. Wie auch immer, solange es keinen Konflikt gibt.

  2. Cache-Aktualisierungsroutine |. Cool Shell - CoolShell.cn

Was Sie oben gesagt haben, macht Sinn.
Sie können sich auf die Idee des Datei-Caching beziehen.
Thinkphp-Datei-Caching verwendet Serialisierung (Valle), um Daten zu speichern, und der Dateiname wird als Schlüsselname verwendet. Um den Cache zu leeren, setzen Sie direkt (null), um dies zu erreichen.
Caching dient nur der Bequemlichkeit der Abfrage und der Reduzierung der Anzahl der MySQL-Zugriffe. Das Problem der Cache-Aktualisierung muss durch Code implementiert werden.

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 und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

MySQLs Rolle: Datenbanken in Webanwendungen MySQLs Rolle: Datenbanken in Webanwendungen Apr 17, 2025 am 12:23 AM

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

Warum PHP verwenden? Vorteile und Vorteile erläutert Warum PHP verwenden? Vorteile und Vorteile erläutert Apr 16, 2025 am 12:16 AM

Zu den Kernvorteilen von PHP gehören einfacher Lernen, starke Unterstützung für Webentwicklung, reiche Bibliotheken und Rahmenbedingungen, hohe Leistung und Skalierbarkeit, plattformübergreifende Kompatibilität und Kosteneffizienz. 1) leicht zu erlernen und zu bedienen, geeignet für Anfänger; 2) gute Integration in Webserver und unterstützt mehrere Datenbanken. 3) leistungsstarke Frameworks wie Laravel; 4) hohe Leistung kann durch Optimierung erzielt werden; 5) mehrere Betriebssysteme unterstützen; 6) Open Source, um die Entwicklungskosten zu senken.

Wählen Sie zwischen PHP und Python: Ein Leitfaden Wählen Sie zwischen PHP und Python: Ein Leitfaden Apr 18, 2025 am 12:24 AM

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

PHP vs. Python: Anwendungsfälle und Anwendungen PHP vs. Python: Anwendungsfälle und Anwendungen Apr 17, 2025 am 12:23 AM

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

PHP: Eine Einführung in die serverseitige Skriptsprache PHP: Eine Einführung in die serverseitige Skriptsprache Apr 16, 2025 am 12:18 AM

PHP ist eine serverseitige Skriptsprache, die für dynamische Webentwicklung und serverseitige Anwendungen verwendet wird. 1.PHP ist eine interpretierte Sprache, die keine Zusammenstellung erfordert und für die schnelle Entwicklung geeignet ist. 2. PHP -Code ist in HTML eingebettet, wodurch es einfach ist, Webseiten zu entwickeln. 3. PHP verarbeitet die serverseitige Logik, generiert die HTML-Ausgabe und unterstützt Benutzerinteraktion und Datenverarbeitung. 4. PHP kann mit der Datenbank interagieren, die Einreichung von Prozessformularen und serverseitige Aufgaben ausführen.

Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

See all articles