Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Verwendung von Redis als Cache für eine MySQL-Datenbank

Ja, Redis ist gut dafür. Aber um das Wesentliche zu verstehen, gibt es grundsätzlich zwei Ansätze für das Caching. Je nachdem, ob Sie ein Framework (und welches) verwenden oder nicht, steht Ihnen möglicherweise die erste Option standardmäßig oder mit Verwendung eines Plug-Ins zur Verfügung:

  1. Cache-Datenbankabfragen, d.h. ausgewählte Abfragen und ihre Ergebnisse werden für einen schnelleren Zugriff für eine bestimmte Zeit oder bis zum Löschen des Cache (nützlich nach dem Aktualisieren der Datenbank) in Redis aufbewahrt. In diesem Fall können Sie das integrierte MySQL-Abfrage-Caching verwenden, es ist einfacher als die Verwendung eines zusätzlichen Schlüsselwertspeichers, oder Sie können die standardmäßige Datenbankintegration mit Ihrer eigenen Klasse überschreiben, indem Sie den Cache verwenden (z. B. http://pythonhosted.org /johnny-cache/).
  2. Benutzerdefiniertes Caching, d. h. das Erstellen eigener Strukturen, die im Cache gehalten werden sollen, und regelmäßiges oder manuelles Auffüllen mit aus der Datenbank abgerufenen Daten. Es ist flexibler und potenziell leistungsstärker, da Sie integrierte Redis-Funktionen wie Listen oder sortierte Sätze verwenden können, die den Aktualisierungsaufwand erheblich verringern. Es erfordert etwas mehr Codierung, bietet aber normalerweise bessere Ergebnisse, da es individueller ist. Ein gutes Beispiel ist das Aufbewahren von Top-Artikeln in Form einer Redis-Liste mit IDs und der anschließende Zugriff auf serialisierte Artikel mit der angegebenen ID auch von Redis. Sie können diesen Artikel unnormalisiert lassen - dh. Das serialisierte Objekt kann sowohl die Benutzer-ID als auch den Benutzernamen enthalten, sodass Sie den Overhead zusätzlicher Abfragen auf ein Minimum reduzieren können.

Es liegt an Ihnen, zu entscheiden, welchen Ansatz Sie wählen, ich persönlich entscheide mich fast immer für Ansatz Nummer zwei. Aber natürlich hängt alles davon ab, wie viel Zeit Sie haben und was die Anwendung tun soll - Sie können genauso gut mit dem Caching von MySQL-Abfragen beginnen und, wenn die Ergebnisse nicht gut genug sind, zu Redis und benutzerdefiniertem Caching wechseln.