Heim  >  Artikel  >  Datenbank  >  Wo wird Redis im Allgemeinen verwendet?

Wo wird Redis im Allgemeinen verwendet?

(*-*)浩
(*-*)浩Original
2019-06-05 17:36:039811Durchsuche

Zusammenfassung der Redis-Anwendungsszenarien. Wir verwenden Redis normalerweise an vielen Stellen. Hier ist eine Zusammenfassung der Anwendungsszenarien, die wir verstehen:

Wo wird Redis im Allgemeinen verwendet?

. Cache von Hotspot-Daten

Aufgrund der hohen Zugriffsgeschwindigkeit und der von Redis unterstützten umfangreichen Datentypen eignet sich Redis sehr gut zum Speichern von Hotspot-Daten. Darüber hinaus können wir in Kombination mit Expire die Ablaufzeit festlegen und fahren Sie dann mit dem Cache-Aktualisierungsvorgang fort. Diese Funktion ist die gebräuchlichste und wird in fast allen unseren Projekten verwendet.

2. Anwendung des zeitlich begrenzten Geschäfts (Empfohlenes Lernen: Redis-Video-Tutorial)

Sie können den Ablaufbefehl verwenden, um das Überleben festzulegen Zeit eines Schlüssels in Redis, Redis löscht ihn, nachdem die Zeit abgelaufen ist. Diese Funktion kann in Geschäftsszenarien wie zeitlich begrenzten Werbeinformationen und Mobiltelefon-Verifizierungscodes verwendet werden.

3. Probleme im Zusammenhang mit Zählern

Redis kann für Flash-Sale-Aktivitäten mit hoher Parallelität und die Generierung verteilter Sequenznummern verwendet werden, da der Befehl incrby eine atomare Erhöhung erreichen kann. Spezifische Dienste spiegeln sich beispielsweise auch in der Begrenzung der Anzahl der von einer Mobiltelefonnummer versendeten SMS, der Begrenzung der Anzahl der Anfragen pro Minute für eine Schnittstelle, der Begrenzung der Anzahl der Anrufe pro Tag für eine Schnittstelle usw. wider.

4. Probleme im Zusammenhang mit Rankings

Relationale Datenbanken sind bei der Abfrage von Rankings im Allgemeinen langsam, daher können Sie SortedSet von redis verwenden, um heiße Daten zu sortieren.

Im Milchtee-Event müssen wir die Like-Rangliste jeder Abteilung anzeigen, also habe ich für jede Abteilung ein SortedSet erstellt und dann die OpenID des Benutzers als Benutzernamen oben und die Anzahl der Likes des Benutzers verwendet Wie für die obige Bewertung wird für jeden Benutzer ein Hash erstellt, der anhand der Anzahl der Likes ermittelt werden kann, und anschließend werden die Hash-Informationen des Benutzers anhand des Benutzernamens ermittelt war damals ganz gut.

5. Verteilte Sperre

Hierbei wird hauptsächlich der setnx-Befehl von setnx verwendet: „Setzen, wenn nicht vorhanden“ bedeutet, dass der Cache vorhanden ist erfolgreich festgelegt und 1 zurückgegeben, andernfalls wird 0 zurückgegeben. Diese Funktion wird im Hintergrund von Yu You Ben Yuanfang verwendet. Da unser Server geclustert ist, kann die geplante Aufgabe auf beiden Computern ausgeführt werden. Legen Sie daher in der geplanten Aufgabe zunächst eine Sperre fest über setnx. Wenn die Einstellung erfolgreich ist, wird sie ausgeführt. Wenn sie nicht erfolgreich ist, bedeutet dies, dass die geplante Aufgabe ausgeführt wurde. Abhängig vom jeweiligen Unternehmen können wir dieser Sperre natürlich eine Ablaufzeit hinzufügen. Wenn beispielsweise eine geplante Aufgabe alle 30 Minuten ausgeführt wird, kann die Ablaufzeit auf eine Zeit von weniger als 30 Minuten festgelegt werden auf den Zeitraum der geplanten Aufgabe und die Ausführung der geplanten Aufgabe bezogen.

Natürlich können wir diese Funktion auf andere Szenarien anwenden, die verteilte Sperren erfordern. In Kombination mit der Ablaufzeit dient sie hauptsächlich der Verhinderung von Deadlocks.

6. Verzögerungsbetrieb

Ich habe relevante Tests dazu durchgeführt, aber es wurde nicht auf unsere tatsächlichen Projekte angewendet. Nachfolgend werde ich eine Anwendung dieser Funktion geben . Szene. Nachdem die Bestellung beispielsweise erstellt wurde, belegen wir den Bestand. Nach 10 Minuten prüfen wir, ob der Benutzer ihn tatsächlich gekauft hat. Wenn kein Kauf erfolgt, wird das Dokument ungültig und der Bestand wird gleichzeitig wiederhergestellt . Da Redis seit Version 2.8.0 die Keyspace Notifications-Funktion bereitstellt, ist es Kunden gestattet, Pub/Sub-Kanäle zu abonnieren, um Ereignisse zu erhalten, die sich in irgendeiner Weise auf den Redis-Datensatz auswirken. Daher können wir die folgende Lösung für die oben genannten Anforderungen verwenden. Wenn wir die Produktion anordnen, legen wir fest, dass er nach 10 Minuten abläuft. Wir implementieren einen Listener im Hintergrund, um die Wirksamkeit des Schlüssels zu überwachen. Wir werden dem nachgehen. Logik hinzugefügt. Natürlich können wir auch den Verzögerungswarteschlangendienst von Nachrichten-Middleware wie RabbitMQ und ActiveMQ verwenden, um diese Anforderung zu erfüllen.

7. Paging, Fuzzy-Suche

Die Set-Sammlung von Redis bietet eine Zrangebylex-Methode. Die Syntax lautet wie folgt:

ZRANGEBYLEX-Schlüssel min. max [LIMIT offset count]

Seitendatenabfragen können über ZRANGEBYLEX zset - + LIMIT 0 10 durchgeführt werden, wobei - + bedeutet, alle Daten abzurufen

zrangebylex key min max Dies kann die Daten in zurückgeben Das Wörterbuchintervall kann mit dieser Funktion eine Fuzzy-Abfragefunktion ausführen. Dies ist auch die einzige Funktion, die ich in Redis gefunden habe, die Fuzzy-Abfragen für gespeicherte Inhalte unterstützt.

Vor ein paar Tagen habe ich diese Funktion verwendet, um einen Simulationstest für Schuldaten durchzuführen. Die Schuldaten belaufen sich auf etwa 600.000 und die Antwortzeit beträgt etwa 700 ms, was etwas schneller ist als bei der MySQL-ähnlichen Abfrage, aber weil Es kann eine große Anzahl von Datenbank-E/A-Vorgängen vermeiden und ist daher insgesamt besser für die Gewährleistung der Systemleistung geeignet als eine direkte MySQL-Abfrage.

8. Speicherung gegenseitiger Beziehungen wie Likes und Freunde

Die von Redis bereitgestellten externen Funktionen ähneln den Funktionen von list. Das Besondere ist, dass set Duplikate automatisch entfernen kann. Wenn Sie eine Liste von Daten speichern müssen und nicht möchten, dass doppelte Daten angezeigt werden, ist set ein Sehr nützliches Tool. Set bietet eine wichtige Schnittstelle zur Bestimmung, ob sich ein Mitglied in einer Set-Sammlung befindet, die die Liste nicht bereitstellen kann. Oder in der Weibo-Anwendung sind die Personen, denen jeder Benutzer folgt, in einer Sammlung vorhanden, sodass die Funktion zum Finden gemeinsamer Freunde zweier Personen einfach implementiert werden kann.

Dies wird in der Milchtee-Aktivität verwendet, bei der die Like-Beziehung zwischen Benutzern gespeichert wird. Darüber hinaus wird die Sismember-Methode verwendet, um zu bestimmen, ob zu diesem Zeitpunkt ein Like erstellt wurde Die Reaktionszeit dieser Schnittstelle wurde innerhalb von 10 Millisekunden gesteuert, was sehr effizient ist.

9. Warteschlange

Da Redis über Befehle wie List Push und List Pop verfügt, kann es problemlos Warteschlangenvorgänge ausführen.

Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Einführung in das Redis-Datenbanknutzungs-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonWo wird Redis im Allgemeinen verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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

In Verbindung stehende Artikel

Mehr sehen