Natürlich gibt es viele Möglichkeiten, die Strombegrenzung zu implementieren. Ich habe Redis verwendet, um drei Implementierungsmethoden zu üben, die auf relativ einfache Weise implementiert werden können. Redis kann nicht nur die Strombegrenzung durchführen, sondern auch Datenstatistiken, Personen in der Nähe und andere Funktionen durchführen.
Das erste: Setnx basierend auf Redis (Empfohlenes Lernen: Redis-Video-Tutorial )
Wir sind dabei Jeder weiß, dass die verteilte Sperre von Redis auf der SETNX-Anweisung beruht. Während des CAS-Vorgangs (Compare and Swap) wird die Ablaufzeit (expire) für den angegebenen Schlüssel festgelegt. Der Zweck besteht darin, nur N zuzulassen Anzahl der Zugriffsanfragen auf mein Codeprogramm innerhalb einer Zeiteinheit. Diese Funktion kann also leicht erreicht werden, indem man sich auf setnx verlässt.
Zum BeispielWir müssen 20 Anfragen innerhalb von 10 Sekunden begrenzen, dann können wir die Ablaufzeit auf 10 setzen, wenn die Anzahl der angeforderten setnx 20 erreicht, wird der aktuelle Begrenzungseffekt erreicht.
Dieser Ansatz hat natürlich viele Nachteile. Wenn Sie beispielsweise 1-10 Sekunden zählen, ist es unmöglich, 2-11 Sekunden zu zählen , dann Wir müssen N-Schlüssel und andere Probleme in Redis behaltenZweitens: Redis-basierte Datenstruktur zset
Tatsächlich ist die Hauptsache bei der Strombegrenzung Beim Schiebefenster wurde oben auch erwähnt, wie aus 1-10 2-11 wird. Tatsächlich sind sowohl der Startwert als auch der Endwert jeweils +1.Der dritte Typ: basierend auf Redis Token Bucket Algorithmus
Wenn es um die Strombegrenzung geht, müssen wir den Token-Bucket-Algorithmus erwähnen. Der Token-Bucket-Algorithmus wird auch als Bucket-Algorithmus bezeichnet. Weitere Informationen finden Sie in der Erklärung zum Token-Bucket-Algorithmus.Verlassen Sie sich auf den LeftPop von List, um die zu erhalten Token
// 输出令牌 public Response limitFlow2(Long id){ Object result = redisTemplate.opsForList().leftPop("limit_list"); if(result == null){ return Response.ok("当前令牌桶中无令牌"); } return Response.ok(articleDescription2); }Verlassen Sie sich auf die geplanten Aufgaben von Java, um das Token regelmäßig in die Liste zu verschieben. Natürlich muss das Token auch eindeutig sein, daher verwende ich hier immer noch die UUID, um es zu generieren
// 10S的速率往令牌桶中添加UUID,只为保证唯一性 @Scheduled(fixedDelay = 10_000,initialDelay = 0) public void setIntervalTimeTask(){ redisTemplate.opsForList().rightPush("limit_list",UUID.randomUUID().toString()); }Zusammenfassung Es ist zunächst nicht schwierig, den Code für diese aktuellen Begrenzungsmethoden zu implementieren. Wir können den oben genannten Code in AOP oder Filter hinzufügen, um den aktuellen Fluss der Schnittstelle zu begrenzen und letztendlich Ihre Website zu schützen. 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 vonKann Redis selbst den Stromfluss begrenzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Redis verbessert die Anwendungsleistung und die Skalierbarkeit, indem sie Daten zwischengespeichert und verteilte Verriegelung und Datenpersistenz implementiert. 1) Cache -Daten: Verwenden Sie Redis, um häufig auf Daten zugegriffen, um die Geschwindigkeit des Datenzugriffs zu verbessern. 2) Verteilte Schloss: Verwenden Sie Redis, um verteilte Sperren zu implementieren, um die Sicherheit des Betriebs in einer verteilten Umgebung zu gewährleisten. 3) Datenpersistenz: Stellen Sie die Datensicherheit durch RDB- und AOF -Mechanismen sicher, um den Datenverlust zu verhindern.

Das Datenmodell und die Struktur von Redis umfassen fünf Haupttypen: 1. String: Verwendet, um Text oder binäre Daten zu speichern, und unterstützt Atomoperationen. 2. Liste: Bestellte Elementssammlung, geeignet für Warteschlangen und Stapel. 3. SET: Ungeordnete einzigartige Elemente, unterstützende Set -Operation. V. 5. Hash Table (Hash): Eine Sammlung von Schlüsselwertpaaren, die zum Speichern von Objekten geeignet sind.

Die Datenbankmethoden von Redis umfassen In-Memory-Datenbanken und Schlüsselwertspeicher. 1) Redis speichert Daten im Speicher und liest und schreibt schnell. 2) Es wird Schlüsselwertpaare verwendet, um Daten zu speichern, unterstützt komplexe Datenstrukturen wie Listen, Sammlungen, Hash-Tabellen und geordnete Sammlungen, die für Caches und NoSQL-Datenbanken geeignet sind.

Redis ist eine leistungsstarke Datenbanklösung, da sie eine schnelle Leistung, umfangreiche Datenstrukturen, hohe Verfügbarkeit und Skalierbarkeit, Persistenzfunktionen und eine breite Palette von Ökosystemunterstützung bietet. 1) Extrem schnelle Leistung: Die Daten von Redis werden im Speicher gespeichert und verfügt über extrem schnelle Lesen und Schreibgeschwindigkeiten, die für Anwendungen mit hoher Parallelität und niedriger Latenz geeignet sind. 2) Reiche Datenstruktur: Unterstützt mehrere Datentypen wie Listen, Sammlungen usw., die für eine Vielzahl von Szenarien geeignet sind. 3) hohe Verfügbarkeit und Skalierbarkeit: Unterstützt die Master-Slave-Replikation und den Clustermodus, um eine hohe Verfügbarkeit und horizontale Skalierbarkeit zu erzielen. 4) Persistenz und Datensicherheit: Die Datenpersistenz werden durch RDB und AOF erreicht, um die Integrität und Zuverlässigkeit der Daten zu gewährleisten. 5) Weites Ökosystem und Unterstützung der Gemeinschaft: mit einem riesigen Ökosystem und einer aktiven Gemeinschaft.

Zu den wichtigsten Merkmalen von Redis gehören Geschwindigkeit, Flexibilität und Reich Datenstrukturunterstützung. 1) Geschwindigkeit: Redis ist eine In-Memory-Datenbank, und Lese- und Schreibvorgänge sind fast augenblicklich und für Cache und Sitzungsverwaltung geeignet. 2) Flexibilität: Unterstützt mehrere Datenstrukturen wie Zeichenfolgen, Listen, Sammlungen usw., die für die komplexe Datenverarbeitung geeignet sind. 3) Unterstützung bei der Datenstruktur: Bietet Zeichenfolgen, Listen, Sammlungen, Hash -Tabellen usw., die für unterschiedliche Geschäftsanforderungen geeignet sind.

Die Kernfunktion von Redis ist ein Hochleistungs-In-Memory-Datenspeicher- und Verarbeitungssystem. 1) Hochgeschwindigkeitsdatenzugriff: Redis speichert Daten im Speicher und bietet Lese- und Schreibgeschwindigkeit auf Mikrosekunden. 2) Reiche Datenstruktur: Unterstützt Zeichenfolgen, Listen, Sammlungen usw. und passt an eine Vielzahl von Anwendungsszenarien. 3) Persistenz: Behalten Sie Daten an, um durch RDB und AOF zu diskutieren. 4) Abonnement veröffentlichen: Kann in Nachrichtenwarteschlangen oder Echtzeit-Kommunikationssystemen verwendet werden.

Redis unterstützt eine Vielzahl von Datenstrukturen, darunter: 1. String, geeignet zum Speichern von Einzelwertdaten; 2. Liste, geeignet für Warteschlangen und Stapel; 3.. SET, verwendet zum Speichern nicht duplikatischer Daten; V. 5. Hash -Tabelle, geeignet zum Speichern von Objekten oder strukturierten Daten.

Der Redis-Zähler ist ein Mechanismus, der die Speicherung von Redis-Schlüsselwertpaaren verwendet, um Zählvorgänge zu implementieren, einschließlich der folgenden Schritte: Erstellen von Zählerschlüssel, Erhöhung der Zählungen, Verringerung der Anzahl, Zurücksetzen der Zählungen und Erhalt von Zählungen. Die Vorteile von Redis -Zählern umfassen schnelle Geschwindigkeit, hohe Parallelität, Haltbarkeit und Einfachheit und Benutzerfreundlichkeit. Es kann in Szenarien wie Benutzerzugriffszählungen, Echtzeit-Metrikverfolgung, Spielergebnissen und Ranglisten sowie Auftragsverarbeitungszählung verwendet 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft