Heim >Backend-Entwicklung >PHP-Tutorial >Redis wird in 11 Webanwendungsszenarien vollständig genutzt
Nachfolgend sind 11 Webanwendungsszenarien aufgeführt, in denen die Funktionen von Redis vollständig genutzt werden können, um die Effizienz erheblich zu verbessern.
1. Zeigen Sie die neueste Projektliste auf der Startseite an.
Redis verwendet einen residenten Speichercache, der sehr schnell ist. Mit LPUSH wird eine Inhalts-ID eingefügt, die als Schlüssel am Anfang der Liste gespeichert wird. LTRIM wird verwendet, um die Anzahl der Elemente in der Liste auf maximal 5000 zu begrenzen. Wenn die Datenmenge, die der Benutzer abrufen muss, diese Cache-Kapazität überschreitet, muss die Anfrage an die Datenbank gesendet werden.
2. Löschen und filtern.
Wenn ein Artikel gelöscht wird, können Sie ihn mit LREM vollständig aus dem Cache löschen.
3. Rankings und verwandte Themen.
Die Rangliste ist nach Punktzahl sortiert. Der Befehl ZADD kann diese Funktion direkt implementieren, während der Befehl ZREVRANGE verwendet werden kann, um die Top-100-Benutzer entsprechend ihrer Punktzahl zu erhalten. ZRANK kann verwendet werden, um Benutzerrankings zu erhalten, was sehr direkt und einfach zu bedienen ist.
4. Sortiert nach Benutzerstimmen und Zeit.
Dies ist wie eine Reddit-Bestenliste, wobei sich die Punktzahlen im Laufe der Zeit ändern. Verwenden Sie die Befehle LPUSH und LTRIM zusammen, um Artikel zu einer Liste hinzuzufügen. Eine Hintergrundaufgabe wird verwendet, um die Liste abzurufen und die Reihenfolge der Liste neu zu berechnen, und der Befehl ZADD wird verwendet, um die generierte Liste in der neuen Reihenfolge zu füllen. Listen ermöglichen ein sehr schnelles Auffinden, selbst bei stark ausgelasteten Seiten.
5. Bearbeitung abgelaufener Artikel.
Verwenden Sie Unix-Zeit als Schlüsselwort, um die Liste nach Zeit sortiert zu halten. Rufen Sie current_time und time_to_live ab, um die schwierige Aufgabe, abgelaufene Artikel zu finden, abzuschließen. Eine weitere Hintergrundaufgabe verwendet ZRANGE...WITHSCORES, um abgelaufene Einträge abzufragen und zu löschen.
6. zählen.
Es wird häufig für verschiedene Datenstatistiken verwendet, beispielsweise um zu erfahren, wann eine IP-Adresse blockiert ist. Der INCRBY-Befehl macht dies einfach, indem er die Zählung in atomaren Schritten aufrechterhält; GETSET wird verwendet, um den Zähler zurückzusetzen, und das Ablaufattribut wird verwendet, um zu bestätigen, wann ein Schlüsselwort gelöscht werden soll.
7. Ein bestimmtes Projekt innerhalb einer bestimmten Zeit.
Dies ist ein besucherspezifisches Problem und kann durch die Verwendung des SADD-Befehls für jeden Seitenaufruf gelöst werden. SADD fügt einer Sammlung keine bereits vorhandenen Mitglieder hinzu.
8. Echtzeitanalyse des Geschehens, wird für Datenstatistiken und Spam-Prävention usw. verwendet.
Mithilfe der primitiven Redis-Befehle ist es einfacher, ein Spam-Filtersystem oder ein anderes Echtzeit-Tracking-System zu implementieren.
9. Pub/Sub.
Die Aufrechterhaltung der Benutzerzuordnung von Daten über Aktualisierungen hinweg ist eine häufige Aufgabe in Systemen. Die Pub/Sub-Funktionalität von Redis erleichtert dies mithilfe der Befehle SUBSCRIBE, UNSUBSCRIBE und PUBLISH.
10. Warteschlange.
Warteschlange ist überall in der aktuellen Programmierung zu sehen. Zusätzlich zu Push- und Pop-Befehlen verfügt Redis auch über blockierende Warteschlangenbefehle, mit denen ein Programm während der Ausführung von einem anderen Programm zur Warteschlange hinzugefügt werden kann. Sie könnten auch etwas Interessanteres tun, beispielsweise eine rotierende Warteschlange mit aktualisierten RSS-Feeds.
11. Cache.
Redis-Cache wird auf die gleiche Weise wie Memcache verwendet.
Netzwerkanwendungen können sich nicht auf endlose Modellkriege einlassen. Obwohl sie einfach, aber mächtig sind, ist es noch unvorstellbarer, was durch ihre Kombination erreicht werden kann. Natürlich können Sie für alle diese Vorgänge speziellen Code schreiben, aber Redis ist offensichtlich einfacher zu implementieren.
Es besteht kein Zweifel, dass Redis eine neue Datenspeicheridee geschaffen hat. Mit Redis müssen wir uns nicht darauf konzentrieren, wie wir den Elefanten in den Kühlschrank stellen, wenn wir mit einer Datenbank mit monotonen Funktionen konfrontiert sind. Stattdessen nutzen wir die flexiblen Datenstrukturen und Datenoperationen von Redis, um unterschiedliche Kühlschränke für unterschiedliche Elefanten zu bauen. Ich hoffe, Ihnen gefällt diese Metapher.
Der folgende Artikel wurde von @antirez, dem Autor von Redis, verfasst. Er beschreibt einige Anwendungsszenarien, für die sich NoSQLFan hier kurz auflistet:
Um beispielsweise die neuesten Artikel auf Ihrer Website abzurufen, können wir mit der folgenden Methode die IDs der neuesten 5000 eingeben Kommentare in der Listensammlung von Redis und rufen Sie die überschüssigen Teile aus der Datenbank ab
Verwenden Sie den Befehl LPUSH Latest.commentseddfa97ffc1dc71769e3f42e462dfe8e, um Daten in die Listensammlung
FUNCTION get_latest_comments(start,num_items): id_list = redis.lrange("latest.comments",start,start+num_items-1) IF id_list.length < num_items id_list = SQL_DB("SELECT ... ORDER BY time LIMIT ...") END RETURN id_list ENDWenn Sie unterschiedliche Filterdimensionen haben, z. B. die neuesten N Elemente in einer bestimmten Wenn eine auf diese Weise klassifizierte Liste nur IDs speichert, ist Redis sehr effizient.
Der Unterschied zwischen dieser Anforderung und der obigen Anforderung besteht darin, dass die vorherige Operation die Zeit als Gewicht verwendet und diese darauf basiert B. die Sortierung nach der Anzahl der Likes, dann muss unser sortierter Satz ins Spiel kommen. Stellen Sie den Wert, den Sie sortieren möchten, auf die Punktzahl des sortierten satzes ein Daten auf den entsprechenden Wert umstellen. Sie müssen jeweils nur einen ZADD-Befehl ausführen.
Zum Beispiel können Sie den Score-Wert des oben genannten sortierten Satzes auf den Zeitstempel des Ablaufs festlegen Zeit, dann Sie können einfach nach der Ablaufzeit sortieren und die abgelaufenen Daten regelmäßig löschen. Dadurch werden nicht nur die abgelaufenen Daten in Redis gelöscht, Sie können die Ablaufzeit in Redis auch vollständig als Index der Daten in der Datenbank betrachten und verwenden Redis findet heraus, welche Daten abgelaufen sind und löscht dann die entsprechenden Datensätze genau aus der Datenbank.
Redis-Befehle sind atomar und Sie können problemlos INCR- und DECR-Befehle verwenden, um ein Zählersystem aufzubauen.
Dies ist die am besten geeignete festgelegte Datenstruktur, die Sie nur weiter werfen müssen in den Satz bedeutet Sammlung, daher wird er automatisch dedupliziert.
Über die oben genannte Set-Funktion können Sie erkennen, ob ein Endbenutzer einen bestimmten Vorgang ausgeführt hat Hier finden Sie eine Sammlung von Operationen und Analysen, statistische Vergleiche usw. Nichts ist unmöglich, nur unvorstellbar.
Das Pub/Sub-System von Redis kann ein Echtzeit-Messaging-System aufbauen, wie beispielsweise viele Beispiele für Echtzeit-Chat-Systeme mit Pub/Sub.
Verwenden Sie eine Liste, um ein Warteschlangensystem aufzubauen, und verwenden Sie einen sortierten Satz, um sogar ein Warteschlangensystem mit Priorität zu erstellen.
Das obige ist der detaillierte Inhalt vonRedis wird in 11 Webanwendungsszenarien vollständig genutzt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!