Redis-Caching-Strategie
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:
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?
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:
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?
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.
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.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.

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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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

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.

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

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.

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.

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 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 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.

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.
