Inhaltsverzeichnis
Warum es gebraucht wurde
Wie funktioniert Sharded Pub/Sub?
Wann solltest du es benutzen?
So verwenden Sie Sharded Pub/Sub
Letzte Gedanken
Heim Datenbank Redis Was ist Sharded Pub/Sub in Redis 7?

Was ist Sharded Pub/Sub in Redis 7?

Jul 01, 2025 am 12:01 AM
pub/sub Redis 7

Sharded Pub/Sub in Redis 7 verbessert die Pub/Subskalierbarkeit, indem sie den Nachrichtenverkehr über mehrere Threads verteilen. Das traditionelle Redis Pub/Sub wurde durch ein einsthreades Modell begrenzt, das unter hoher Belastung zu einem Engpass werden konnte. Mit Sharded Pub/Sub sind die Kanäle in Scherben unterteilt, die bestimmten E/A -Threads zugeordnet sind. Jeder Thread verarbeitet die Nachrichtenzustellung für den zugewiesenen Shard, reduziert die Streitigkeiten und die Verbesserung der Leistung. Zu den wichtigsten Punkten gehören: 1) Kanal-zu-Shard-Mapping über Hashing; 2) konfigurierbare Anzahl von Scherben; 3) Verwendung von Ssubscribe für Sharded -Abonnements; 4) Automatisches Sharding während der Veröffentlichung. Es ist ideal für Anwendungen mit vielen Kanälen wie Echtzeit-Chat-Systemen oder IoT-Plattformen. Um es zu verwenden, ersetzen Sie das Abonnieren durch SSUBScribe, während die Veröffentlichung unverändert bleibt. Kunden müssen sich ausdrücklich für das Sharding entscheiden, und beide Modi können während der Migration koexistieren.

Was ist Sharded Pub/Sub in Redis 7?

Sharded Pub/Sub in Redis 7 ist ein neues Merkmal, das eine der Einschränkungen des traditionellen Redis Pub/Sub -Systems - Skalierbarkeit - befasst. Wenn Sie Redis für Echtzeit-Nachrichten verwenden und über mehrere Kanäle oder Muster verfügen, insbesondere unter hoher Last, haben Sie möglicherweise zuvor Leistungsprobleme erreicht. Sharded Pub/Sub hilft, indem er Pub/Sub -Verkehr über alle verfügbaren Ereignisschleifen (oder Fäden) verbreitet, anstatt alles über den Hauptfaden zu leiten.

Warum es gebraucht wurde

Redis hat immer ein einsthreades Modell zum Umgang mit Befehlen verwendet, das die Dinge einfach hält, aber beim Umgang mit großen Volumina von Pub/Sub-Nachrichten zu einem Engpass werden kann. In früheren Versionen, selbst wenn Redis mit aktiviertem Gewinde -E/A zusammengestellt wurde, gingen alle Pub/Sub -Operationen immer noch durch den Hauptfaden. Dies bedeutete, dass die Veröffentlichung oder Übergabe von Nachrichten an viele Abonnenten andere Vorgänge blockieren konnten.

Mit Redis 7 ändert sich dies.


Wie funktioniert Sharded Pub/Sub?

Die Kernidee hinter Sharded Pub/Sub ist Sharding - die Verantwortung der Verantwortung für die Bereitstellung von Nachrichten über mehrere Threads hinweg. So funktioniert es:

  • Redis unterteilt Kanäle in logische Gruppen, die als "Shards" bezeichnet werden.
  • Jeder Shard ist einem bestimmten E/A -Thread zugeordnet.
  • Wenn ein Client einen Kanal abonniert, ist das Abonnement mit dem für diesen Kanal verantwortlichen Shard (und so Thread) registriert.
  • Meldungen, die in einem Kanal veröffentlicht wurden, werden von demselben Thread verarbeitet und übermittelt, wodurch die Synchronisationsaufwand in der Synchronisation vermieden wird.

Auf diese Weise kann Redis die Pub/Subleistung effektiver skalieren, wenn die Anzahl der CPU -Kerne zunimmt.

Einige wichtige Punkte:

  • Kanalnamen werden mithilfe einer Hashing -Funktion den Scherben zugeordnet.
  • Die Anzahl der Scherben ist über redis.conf ( pubsub_shard_streams_per_node ) konfigurierbar.
  • Abonnenten erhalten nur Nachrichten von den Kanälen, denen sie unterzeichnet haben -es gibt einen separaten Befehl dafür: SSUBSCRIBE .

Wann solltest du es benutzen?

Sie sollten in Betracht ziehen, Sharded Pub/Sub zu verwenden, wenn:

  • Ihre Anwendung verwendet eine große Anzahl von Kanälen.
  • Sie erleben Leistungs Engpässe aufgrund schwerer Kneipe/Sub -Nutzung.
  • Sie möchten Redis horizontal skalieren, ohne mehr Instanzen nur für die Nachrichtenverteilung hinzuzufügen.

Es ist besonders nützlich in Anwendungen wie:

  • Echtzeit-Chat-Systeme mit vielen Räumen oder Themen.
  • Benachrichtigungsdienste Übertragung von Updates für viele Benutzer.
  • IoT -Plattformen, auf denen jedes Gerät Statusaktualisierungen auf seinen eigenen Kanal veröffentlicht.

Wenn Ihr Anwendungsfall nur wenige Kanäle mit vielen Abonnenten umfasst, kann Standard Pub/Sub noch in Ordnung sein. Sobald Sie jedoch mit der Skalierung der Anzahl der Kanäle oder einer geringeren Latenz pro Nachricht beginnen, passt das Sharding zu einer besseren Passform.


So verwenden Sie Sharded Pub/Sub

Die Verwendung von Sharded Pub / Sub ist unkompliziert, unterscheidet sich jedoch von dem klassischen SUBSCRIBE / PUBLISH . Folgendes müssen Sie tun:

  • Verwenden Sie SSUBSCRIBE anstelle von SUBSCRIBE , um einen Kanal auf geschützte Weise zu abonnieren.
  • Um in einem Sharded -Kanal zu veröffentlichen, verwenden Sie PUBLISH - das Sharding wird automatisch auf der Grundlage des Kanalnamens behandelt.
  • Verwenden Sie zum Abbestellen SUNSUBSCRIBE .

Beispiel:

 # Abonnieren Sie einen Sharded -Kanal
client1> ssuBscribe mychannel

# Veröffentlichen Sie eine Nachricht, die vom richtigen Thread behandelt wird
Client2> Mychannel "Hallo Sharded World" veröffentlichen

Denken Sie daran:

  • Kunden müssen SSUBSCRIBE ausdrücklich nutzen, um Sharding zu nutzen.
  • Classic SUBSCRIBE und SSUBSCRIBE können nicht in derselben Verbindung gemischt werden.
  • Tools oder Clients, die nicht für Redis 7 aktualisiert wurden, verwendet Sharded Pub/Sub, sofern nicht geändert.

Da Redis 7 beide Modi unterstützt, können Sie Teile Ihrer App nach und nach migrieren, um Sharded -Abonnements zu verwenden, während andere auf dem traditionellen Modell aufbewahrt werden.


Letzte Gedanken

Sharded Pub/Sub in Redis 7 bringt die Verbesserungen der Skalierbarkeit von Redis in Echtzeit-Messaging-Funktionen mit dringend benötigten Skalierbarkeit. Durch die Zuweisung von Kanälen zu verschiedenen Threads kann Redis einen viel höheren Durchsatz bewältigen, ohne die Einfachheit oder Zuverlässigkeit zu beeinträchtigen.

Wenn Sie mit Redis im Maßstab arbeiten, insbesondere in Pub/Sub-Heavy-Umgebungen, lohnt es sich, diese Funktion zu verbessern und auszuprobieren.

Das ist im Grunde genommen - nicht zu kompliziert, aber definitiv ein großer Schritt vorwärts für Redis als Messaging -Plattform.

Das obige ist der detaillierte Inhalt vonWas ist Sharded Pub/Sub in Redis 7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1545
276
Wie funktioniert PSYNC (partielle Resynchronisation)? Wie funktioniert PSYNC (partielle Resynchronisation)? Jul 29, 2025 am 12:27 AM

PSYNC ist ein teilweise Resynchronisierungsmechanismus bei der Replikation der Redis-Master-Slave, mit der nur Daten synchronisiert werden, die während der Trennung verloren gegangen sind, nachdem der Slave-Server getrennt wurde, um die Synchronisationseffizienz zu verbessern. Sein Kern beruht auf dem Replikationsbacklog, bei dem es sich um eine vom Hauptserver verwaltete Warteschlange handelt. Die Standardgröße beträgt 1 MB und speichert die zuletzt ausgeführten Schreibbefehle. Wenn sich der Slave -Server wieder verbindet, wird ein PSYNC -Befehl gesendet, und der Master -Server bestimmt, ob eine teilweise Synchronisation basierend darauf durchgeführt werden kann: 1. Der Runid muss konsistent sein; 2. Der Offset muss im Backlog -Puffer sein. Wenn die Bedingung erfüllt ist, werden die Daten weiterhin vom Offset gesendet, ansonsten werden die vollständige Synchronisation ausgelöst. Methoden zur Verbesserung der Erfolgsrate von PSYNC umfassen: 1. Angemessen erhöhen die Repl-B

Was ist der Unterschied zwischen Set, SetNX und SetEx? Was ist der Unterschied zwischen Set, SetNX und SetEx? Jul 25, 2025 am 12:40 AM

SetsetsakeywitHoptionalconditionSandexpiration, setNxSetSakeyonlyifitdoesN'Texist, AndsetExsakeyWithanexpiration

Wie rufe ich eine Reihe von Elementen aus einer Liste mit LRange ab? Wie rufe ich eine Reihe von Elementen aus einer Liste mit LRange ab? Jul 23, 2025 am 12:01 AM

LRANGE wird verwendet, um Elemente des angegebenen Bereichs aus der Redisliste herauszunehmen, wobei positive und negative Indizes unterstützt werden. 1. Verwenden Sie 0 bis -1 für die gesamte Liste; 2. Verwenden Sie 0 bis N-1 für das erste n; 3. verwenden Sie -n bis -1 für das letzte n; 4. Verwenden Sie -n bis -1 für die Seite; V. Beachten Sie, dass der Start größer als die Länge oder der Stopp übersteigt das Ende, der leere oder gültige Teil zurückgibt und starten> Stopp auch leer, was für Cache, Protokoll, Warteschlange und andere Szenarien geeignet ist.

Wie lagere und fragst du Geospatialdaten in Redis? Wie lagere und fragst du Geospatialdaten in Redis? Jul 29, 2025 am 12:20 AM

RedissupportsgeospatialdatastorageandQuerieSviaitsgeodatatype.1. UseGeoaddtostorecoordinatenmasmbersUnterakey, mit SSYNTAXGEOADDKEYLONGITUDELATIDEMBEMITME.2.QUEYNEARBYOCATIONSUSUTHEUTGEORADIUS, WHO RETRETURSUMBERSMERBERSCHIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTECIFTERTICIENTREFROMAGREFROMAGEGROMAGEGRAMAGEGRAMAGEGEGEST

Was sind Redis -Funktionen in Version 7? Was sind Redis -Funktionen in Version 7? Jul 28, 2025 am 12:05 AM

Redisfunctionsinversion

Was ist der Zweck der Zeitlimit in Blockierungslistenbefehlen? Was ist der Zweck der Zeitlimit in Blockierungslistenbefehlen? Jul 24, 2025 am 12:48 AM

TimeoutSinRedIsBlockingListCommands -ähnlichemBlpop, BRPOP, orbrpoplpushareSentialforcrolledWaiting.1.TheySpecifyHowlongredisshoitWaitfordatabeForerTurningnil, Verhinderung derIntenfinitierende

Was ist ein Quorum in der Redis -Sentinel -Konfiguration? Was ist ein Quorum in der Redis -Sentinel -Konfiguration? Aug 02, 2025 am 02:41 AM

Quorum in redissentinel -Konfiguration bezieht sich auf die minimale Anzahl von Sentinel -Knoten, die vor dem Auslösen des Failover vereinbart werden müssen. Wenn beispielsweise 5 Sentinels eingestellt sind und Quorum 3 beträgt, müssen mindestens 3 Wachposten bestätigen, dass der Masterknoten vor dem Initiieren des Failover nicht erreichbar ist. 1. Quorum beschließt, den Master -Knoten als minimale Konsensnummer zu markieren, die zur Markierung der subjektiven Downline (sdown) und der objektiven Downline (ODOWN) erforderlich sind. 2. Das Einstellen zu hoch kann im Laufe der Zeit einen Fehler verursachen, und das Einstellen zu niedrig kann ein Fehleinschätzung verursacht werden. 3. Es wird empfohlen, ungerade Sentinels zu verwenden und Quorum auf etwas mehr als die Hälfte der Gesamtzahl einzustellen. V. 5

Wie vergleichen sich Redis -Streams mit Nachrichtenwarteschlangen wie Rabbitmq oder Kafka? Wie vergleichen sich Redis -Streams mit Nachrichtenwarteschlangen wie Rabbitmq oder Kafka? Jul 30, 2025 am 12:49 AM

RedisStreamSissülobableforlightgewichtin-MemoryStreamprocessingwithinredis, whilkafkaexcelsinhigh-throughput, DurablelogstorageandMQincomplexrouting und GuarantedDelivery.Redissreamswellwellforreal-timalalyticaljobsqueuesWherespeedmattersMattersmattersmattersmattersmattersmattersmattersMalljobsMalljobsmalljobsmalljobsqueueSmassersMalljobsmasersmalljobsqueueTicsMalljobqueueSwherespeedmattersmuthatters,,

See all articles