🔍
Does Redis Stack change the database game? Redis with superpowers! 🚀🔥 - YouTube
Channel: Ahmad Bazzi
[0]
Was ist los, Leute, Redis hat gerade eine neue Datenbank namens Redis Stack angekündigt, und ich habe sie bekommen
[7]
frühen Zugriff, um damit herumzuspielen und meine Vorschläge zu machen, dies sind die gleichen Redis, die Sie kennen
[14]
und Liebe, aber mit Superkräften, die richtige Superkräfte sind, fügt es json search time series graph and hinzu
[25]
probabilistische Datenstrukturen zu oss redis können Sie nehmen und buchstäblich ersetzen
[32]
Ihr regelmäßiger Redis oss Ich habe diese Aktienbeobachtungslisten-App erstellt, um sie zu überprüfen, und ich muss sagen, dass ich es war
[40]
Ich bin wirklich beeindruckt davon, lassen Sie mich die Details durchgehen. Das Erstellen einer Echtzeitanwendung kann sehr sein
[48]
knifflig und es erfordert oft, dass Sie Daten in mehreren verschiedenen Formaten speichern, aber wussten Sie das schon?
[55]
redis Stack macht redis zu einer multimodalen Datenbank und unterstützt viele der Funktionen, die Sie benötigen
[62]
alles in einer einzigen Datenbank, wodurch Sie Zeit sparen und die Komplexität bei der Verwendung reduzieren
[69]
Datenbanken von mehreren Anbietern Ich habe hier die Beispielanwendung zum Tracking erstellt
[76]
eine Aktienbeobachtungsliste unter der Haube speichert Daten auf verschiedene Weise mit Redis Stack als
[85]
Primary Database und Message Broker verwende ich nicht nur einige grundlegende Datentypen wie Sets und Hashes
[94]
aber ich speichere auch json-dokumente zeitreihendaten und sogar einige probabilistische daten, die ich auch bin
[102]
Verwenden von Pub Sub zum Kommunizieren von Informationen zwischen einigen verschiedenen Mikrodiensten in Echtzeit mehr dazu
[109]
Lassen Sie uns später einmal in das eintauchen, was Sie im Mittelpunkt dieser App sehen
[115]
In der Beobachtungsliste können Sie hier sehen, dass ich eine Reihe beliebter Aktiensymbole beobachte, die ich sogar kann
[121]
Suche nach mehr, wenn ich will, also gehe ich einfach rein und tippe bac ein und du kannst mehrere verschiedene sehen
[129]
Börsenticker hier und ich kann diese bei Bedarf zu meiner Beobachtungsliste hinzufügen, indem ich einfach darauf klicke
[135]
Ich kann sie auch entfernen, wenn ich möchte, und auf der rechten Seite dieser Karte können Sie sie sehen
[142]
die Handelsinformationen in Echtzeit, sodass Sie den neuesten Handel von jeder Aktie auf der rechten Seite sehen
[149]
Seite der Seite sehen Sie diese Karte namens Trending Stocks, die eine Liste mit den meisten anzeigt
[156]
Häufig gehandelte Aktien in meiner Beobachtungsliste werden in letzter Minute jede Minute zurückgesetzt und verfolgt
[163]
der Anzahl der Trades, die innerhalb dieser Minute stattfinden, zeigt unten auf der Seite Informationen
[170]
Je nachdem, welche Aktie Sie in Ihrer Beobachtungsliste auswählen, können Sie auf verschiedene Symbole und die Uhr klicken
[178]
Liste zum Ändern der angezeigten Informationen. Das Diagramm wird mithilfe der in Echtzeit aktualisiert
[185]
alpaca api Die Zahl oben links im Diagramm zeigt den letzten Handelspreis sowie das Delta
[193]
zwischen dem letzten Handel und dem Schlusskurs der vorherigen Minute, den ich jede Minute erhalte
[199]
einen neuen Schlusskurs von Alpaca und aktualisieren Sie dieses Diagramm auf der rechten Seite sehen Sie die neuesten Nachrichten
[207]
Das sind Neuigkeiten, die von der Alpaka-API über die bestimmte Aktie, die Sie gerade betrachten, abgerufen wurden
[213]
Lassen Sie uns aufschlüsseln, wie ich die Daten speichere, abrufe und verwalte, die zum Füllen des Bildschirms verwendet werden
[221]
die watchlist wird in redis als set gespeichert ein set macht am meisten sinn da es automatisch geht
[228]
Verhindert doppelte Symbole. Ich speichere auch Informationen zu jeder Aktie, wie z. B. den Namen
[235]
Sektorindustrie und eine Liste von Neuigkeiten in einem json-Dokument und redis Stack, in dem der Preis gespeichert ist
[244]
eine Zeitreihe mit den Zeitreihenfunktionen von Redis Stack, dies macht es einfach, die zu erhalten
[251]
der neueste Preis sehr schnell, wenn das Frontend die Beobachtungsliste anfordert, von der ich einige herunterhole
[257]
die Informationen aus dem JSON-Dokument sowie den letzten Handel für jedes Symbol in der Liste dann
[264]
Ich verwende einen Web-Socket, um Preisaktualisierungen zu erhalten. Die Trendliste verwendet den Top-k-Filter, der a ist
[271]
Funktion, die in den Redis-Stack integriert ist und automatisch eine Rangliste für Sie erstellt, wenn Trades eingehen
[279]
Von der Alpaka-API füge ich sie einfach dem Top-k-Filter hinzu und er lässt mich wissen, ob die Rangliste hat
[286]
geändert Das Diagramm verwendet Zeitreihendaten, die in Echtzeit von der Alpaka-API abgerufen werden
[292]
und im Redis-Stack als Zeitreihe gespeichert, wenn Sie Zeitreihendaten im Redis-Stack speichern
[300]
Es macht es Ihnen super einfach, die Daten über einen Datumsbereich abzufragen und die Daten zu aggregieren
[307]
Es eignet sich perfekt zum Speichern von Daten, die Sie in einem Diagramm visualisieren möchten, bei dem die Zeit auf der x-Achse aufgetragen ist
[315]
Die Nachrichtenliste hier wird mit der Alpaka-API auf dem neuesten Stand gehalten und in einem JSON-Dokument in gespeichert
[322]
Reddit Stack zusammen mit anderen Informationen über eine Aktie, damit Sie sehen können, dass diese App möglicherweise
[330]
Schau einfach auf das Frontend, hinter den Kulissen ist viel los und das Ganze
[337]
wird von Redis Stack betrieben. Schauen wir uns nun ein Architekturdiagramm für diese Anwendung an, damit Sie es können
[346]
Wenn Sie sich dieses Architekturdiagramm ansehen, können Sie ein Gefühl dafür bekommen, wie alle Teile zusammenpassen
[354]
links drüben mit der Frontpartie ist die Frontpartie zuständig, die wir uns gerade angeschaut haben
[362]
um alle Daten zu erhalten, die zum Füllen dieses Dashboards erforderlich sind, also die Zeitreiheninformationen
[370]
Um das Diagramm und die aktuellsten Aktienkurse zu füllen, füllt es auch die Beobachtungsliste
[376]
und es erhält auch die Trendaktien und die Nachrichten über die Aktien, an denen Sie interessiert sind
[383]
Außerdem verwendet es einen Websocket mit dem API-Dienst, um Echtzeit-Updates zu erhalten
[392]
Aktienkursnachrichten und Trendaktien Als nächstes haben wir den API-Dienst, also ist der API-Dienst relativ
[402]
einfach, es erleichtert nur die Kommunikation zwischen dem Frontend und dem Redis-Stack
[409]
Es aktualisiert die Beobachtungsliste, wenn Sie eine Aktie zur Beobachtungsliste im Frontend hinzufügen oder daraus entfernen
[414]
Es fragt nach den Daten, die benötigt werden, um das Frontend zu füllen, also all die Daten, über die wir gerade gesprochen haben
[419]
die Beobachtungsliste die Rangliste die Zeitreihen und die Nachrichten es erhält auch Pub-Sub-Nachrichten
[426]
mit all den Leaderboard-Updates, neuen Trends und neuen Bars, die die Eröffnungs- und Schlusskurse sind
[433]
für eine Aktie erhält es die direkt von Redis und die werden tatsächlich von der generiert
[440]
Streaming-Dienst Der Streaming-Dienst kommuniziert also mit der Alpaka-API
[446]
um Echtzeit-Handelsinformationsleisten und -kurse zu erhalten und wenn ein neuer Kurs eingeht oder a
[454]
trade it aktualisiert die Rangliste mit Redis Bloom und der Top-k-Filter veröffentlicht dann Updates
[462]
Verwendung von Pub Sub mit Redis für Ranglistenänderungen oder immer dann, wenn es einen neuen Handel oder eine neue Bar gibt
[468]
verfügbar, abonniert es auch Aktualisierungen der Beobachtungsliste, also am Frontend, wenn Sie eine Aktie hinzufügen
[476]
Watch List Die API wird eine Nachricht an Redis senden, die besagt, dass die Watch List und die aktualisiert werden
[483]
Der Streaming-Dienst empfängt dann diese Nachricht und abonniert automatisch Updates von der
[489]
alpaca api für diese bestimmte Aktie jedes Mal, wenn ein neuer Handel oder Balken oder Code oder Nachrichten in den Markt kommen
[499]
Streaming-Dienst von Alpaca fügt es den Zeitreihen für die Aktien und der Watchlist hinzu
[506]
Was Sie hier im Wesentlichen sehen können, ist, dass Redis eine Menge von dem verarbeitet, was Sie sonst verwenden könnten
[513]
mehrere andere Tools, um dies zu tun, und Sie können damit nicht nur Daten in mehreren verschiedenen Formaten speichern
[521]
Mit Redis Stack können Sie jedoch auch Pub Sub verwenden, um zwischen Microservices zu kommunizieren
[527]
Ich bin mir sicher, dass es Sie schon jetzt juckt, sich etwas Code anzusehen, um zu verstehen, wie die Anwendung aufgebaut ist
[534]
Anstatt Ihnen den gesamten Code zu zeigen, für den Sie möglicherweise mehrere Stunden benötigen, um ihn gründlich durchzugehen
[540]
Ich werde einige spezifische Bereiche hervorheben, die interessant sind, wenn Sie am Lernen interessiert sind
[547]
Den gesamten Code können Sie sich in der Beschreibung unterhalb dieses Videos anschauen
[552]
Code können Sie sehen, dass ich einen API-Dienst, einen Stream-Dienst und einen UI-Dienst habe, für den der UI-Dienst bestimmt ist
[560]
Das Frontend, das wir uns gerade angesehen haben. Ich werde Ihnen nicht zu viel vom Frontend-Code zeigen
[565]
weil es anderen Anwendungen, die Sie vielleicht gebaut haben, ziemlich ähnlich ist, aber ich werde erwähnen, dass es so ist
[572]
Verwenden von tailwind css charge.js und next.js, also ist es eine sehr typische Front-End-next.js-Anwendung, die
[580]
Ruft einfach eine API auf, um alle Daten zu erhalten, aber schauen wir uns an, wie die API aussieht, wie ich die API geschrieben habe
[587]
Verwenden von Python und Fast API sowie Redis Ohm für die Kommunikation mit Redis Stack, also das erste
[595]
Zwei Routen hier sind die Beobachtungsliste, mit der Sie Aktien beobachten und nicht beobachten können, also Aktien hinzufügen und entfernen können
[602]
Von Ihrer Beobachtungsliste verwende ich ein Redis-Set, um Ihre Beobachtungsliste im Auge zu behalten
[610]
Ganz einfach, weil Du Duplikate automatisch vermeiden kannst, die nächste Route ist einfach so
[617]
Holen Sie sich die Beobachtungsliste, was es tut, es greift den Satz aus Redis heraus und verwendet dann Redis
[624]
ohm, um alle json-Dokumente zu erhalten, bei denen das Symbol für das json-Dokument in meiner Beobachtungsliste ist this
[630]
Lassen Sie mich einige Informationen vorbringen, wie z. B. die Nachrichten und einige andere Informationen über die Aktie
[636]
Eine andere Route wird gesucht, daher verwendet diese redis-Suche definierten Bestand, also wenn Sie die eingeben
[643]
Formular in Ihrer Beobachtungsliste im Frontend, sobald Sie eine bestimmte Anzahl von Zeichen erreicht haben i
[649]
Beginnen Sie mit der Suche nach Aktiensymbolen. Dies verwendet Redis Search und Redis Ohm. Diese Route dient dazu, alle zu erhalten
[656]
Die Balken in den letzten 30 Minuten, also was ich mit Balken meine, ist, dass die Alpaka-API Ihnen das gibt, was genannt wird
[663]
Bars, die einen hohen Preis, einen niedrigen Preis, ein Volumen, einen Eröffnungspreis und einen Schlusspreis innerhalb eines bestimmten Bereichs haben
[671]
Zeitraum, also schaue ich mir die letzten 30 Minuten Balken an und diese Runde einfach nur
[678]
Geben Sie ein Aktiensymbol an und es gibt die Balken für Sie zurück. Die nächste Route gibt Ihnen ein Individuum
[684]
trade, sodass Sie sowohl den letzten Trade für ein bestimmtes Symbol als auch den Preis dieses Trades erhalten
[691]
dieser Routen verwenden Redis-Zeitreihen, die Teil des Redis-Stacks sind und Zeitreihen speichern
[699]
Daten, damit Sie sie einfach über einen Bereich abfragen können, wie wir es hier tun, oder um die neuesten zu erhalten
[706]
Preis, was wir hier tun, dies ist die Trendroute, also wird uns dies die Liste geben
[712]
Trendaktien erinnern sich, dass diese Aktien basierend auf der Handelshäufigkeit tendieren, also ist das alles
[719]
schaut sich den Top-k-Filter an und bittet ihn, uns die Liste zu geben, die Redis Bloom verwendet, die Teil ist
[726]
von redis stack sehen die nächsten Dinge vielleicht wie Routen aus, aber sie sind eigentlich Web-Sockets
[733]
Ich habe hier einen trendigen Aktien-Websocket, wo das Frontend sagen kann, hey, gib mir alle Updates
[741]
über Trendaktien und dies wird nur den Redis-Stack auf Nachrichten über die Trendaktien abhören
[747]
und Sie automatisch darüber informieren, dass es eine aktualisierte Trendliste gibt, die nächste ist ähnlich, aber
[754]
für Trades, damit Sie wissen, wann es einen neuen Trade gibt und der letzte für Barren ist
[763]
damit wir Sie wissen lassen, wenn es neue Balken am Frontend gibt, so aktualisieren wir alle Preise
[771]
Informationen und die Beobachtungsliste und so aktualisieren wir die Grafik, die es für die API gibt
[778]
Schauen wir uns jetzt den Streaming-Dienst an. Das erste, was wir uns für den Streaming-Dienst ansehen möchten
[786]
ist der Einstiegspunkt, der der Hauptpunkt pi ist, so dass dies wie die API in Python geschrieben ist
[793]
und es verwendet das Alpaka-SDK sowie Redis Stack in der Hauptschleife all das
[801]
Wir verbinden uns mit Alpaka und löschen die Trendaktien, also die Trendaktien
[807]
Schlüssel ist, was wir verwenden, um die Trendaktien mit redis bloom und top k zu verfolgen
[815]
Dann reserviert es die Trendaktien erneut und synchronisiert die Beobachtungsliste mit
[822]
Was auch immer sich zu diesem Zeitpunkt im Satz in Redis befindet, was Reserve Top k tut, ist, dass es nur diesen Schlüssel reserviert
[834]
zur Verwendung mit dem Top-k-Filter und wir sagen, behalten Sie den Überblick über die 12 am häufigsten gehandelten Aktien
[841]
und dann setzen wir auch einen Ablauf dieses Schlüssels auf 60 Sekunden. Der Grund dafür ist alle 60 Sekunden
[848]
Wir erstellen die Trendaktienliste neu, sodass Sie sie alle 60 Sekunden im Frontend sehen können
[856]
Okay, welche Aktien aktiv gehandelt werden, also verwenden wir Pub Sub, um zu verstehen, wann
[864]
Der Schlüssel für Trending Stocks ist abgelaufen, und wenn er abgelaufen ist, reservieren wir ihn und beginnen mit dem Neuaufbau
[872]
Die Liste hören wir auch auf die Beobachtungsliste, also wenn Sie sich in der API am Frontend erinnern
[878]
Sie können etwas zu Ihrer Beobachtungsliste hinzufügen oder entfernen, indem Sie die API einfach tun
[885]
aktualisiert das Set innerhalb von redis well hier werden wir uns diesen Watchlist-Key-Space anhören
[892]
und wann immer es aktualisiert wird, werden wir es synchronisieren, also lassen Sie uns eintauchen, wie das hier aussieht, wenn wir synchronisieren
[899]
Die Beobachtungsliste Wir erhalten im Grunde die Beobachtungsliste, die eine Reihe von Vergleichen durchführt und
[904]
Abmeldung von allem, was wir abbestellen und abonnieren müssen
[910]
Wir müssen auch abonnieren, der Rest hat alles mit Alpaka zu tun, also nennen wir Abo-Trades
[917]
Auf diese Weise hören wir die Alpaka-API in Echtzeit und erhalten Trades sowie Barren, die wir auch erhalten können
[925]
Initialisieren Sie eine Aktie, wenn wir müssen, und was dies tun wird, ist, dass es uns historische Trades gibt und
[933]
historische Balken über die Aktie und es werden auch die Zeitreihenschlüssel erstellt, die wir in Redis benötigen
[942]
Stack, hier werden also alle Zeitreihen mit allen Trades über die letzte beliebige Zeit erstellt
[950]
Zeitraum, den wir entschieden haben, und ich glaube, ich habe entschieden, dass der Zeitraum der letzte sein würde, ich weiß nicht 30
[957]
Minuten oder so, und das war es hier drin. Der nächste Teil davon ist, was als eingehendes passiert
[967]
Trades und eingehende Bars kommen herein. Wenn eingehende Trades eingehen, fügen wir den Trade unserer Zeitreihe hinzu
[974]
und dann fügen wir es auch zu unserem Top-k hinzu und veröffentlichen dann ein Update, in dem wir sagen, dass wir es aktualisiert haben
[981]
das Top-k, also gibt es einen neuen Handel im Top-k, der unsere API anweist, die Top-k-Liste zu aktualisieren
[989]
am Frontend und wenn Sie sich erinnern, gibt es einen Web-Socket, auf den das Frontend hören kann
[996]
um Updates zu diesen Trendaktien zu erhalten, so dass der Nachrichtenfluss hier ist, dass ein eingehender Handel von Alpaka kommt
[1004]
Dann veröffentlichen wir eine Nachricht, in der es heißt, dass wir die Trades aktualisiert und den Trend aktualisiert haben
[1009]
Aktienliste, dann empfängt die API diese Nachricht und benachrichtigt das Front-End, falls vorhanden
[1016]
alle erforderlichen Änderungen und ich habe Ihnen nur einen kleinen Einblick in den gesamten Code gezeigt, der hier enthalten ist
[1023]
Ich wollte Ihnen einige spezifische Dinge zeigen, damit Sie ein Gefühl dafür bekommen, wie das alles funktioniert
[1028]
Teile passen innerhalb dieser Anwendung zusammen, aber das nächste, was ich Ihnen zeigen möchte, ist
[1034]
Wie das in Redis Insight aussieht In Redis Insight können Sie sehen, wie wir eine Reihe von JSON-Dokumenten haben
[1044]
die jede Aktie darstellen, also habe ich eine Reihe von Daten direkt von der NASDAQ gezogen, um sie zu füllen
[1050]
All diese Informationen lassen Sie uns einen Blick auf die Beobachtungsliste werfen, damit die Beobachtungsliste ein Set ist und Sie sehen können, dass sie vorhanden ist
[1057]
alle Artikel, die auf unserer Beobachtungsliste im Frontend vertreten waren, so können wir das
[1064]
um zu verfolgen, was wir sehen, und um Dinge aus diesem Set hinzuzufügen oder zu entfernen, wenn wir beides tun
[1070]
sie nicht mehr sehen wollen oder mit, wenn wir eine neue Aktie sehen wollen
[1074]
Schauen wir uns jetzt etwas auf unserer Beobachtungsliste an, z. B. Apple. Wenn ich also nach Apple filtere, sehen Sie
[1080]
Wir haben eine Reihe verschiedener Datenstrukturen für Apple selbst. Die erste ist diese JSON
[1086]
Dokument, so dass es Informationen wie die Marktkapitalisierung, den Namen Apple-Stammaktien speichert
[1092]
der Branche und der Industrie hat es auch eine eingebettete Liste von Nachrichtenartikeln, also ist dies der Ort
[1100]
Im Frontend zeigen wir Ihnen all diese Artikellisten und lassen Sie dann klicken
[1106]
und gehen Sie zu ihnen, das ziehen wir aus der Alpaka-API, damit neue Nachrichtenartikel eingehen
[1112]
Wir aktualisieren dieses JSON-Dokument mit dem Artikel, in dem wir auch eine Reihe von anderen speichern
[1117]
Zeitreihen in Bezug auf Notierungen, Trades und Balken, Sie können die Daten hier nicht sehen, aber schauen wir uns an, was
[1125]
Es sieht so aus, als würden wir den neuesten Handel von Apple erhalten. Wir werden also den Befehl ts.get verwenden
[1134]
um den neuesten Preis des Apfelhandels zu erhalten, so dass der erste Wert, der zurückgegeben wird, der Zeitstempel ist
[1141]
und der zweite ist der Preis, und was wir tun, ist, diesen Bereich abzufragen, um ihn zu füllen
[1148]
Das Diagramm am Frontend ist der Befehl dafür ts.range und was ich hier tun werde, ist, a anzugeben
[1155]
from timestamp und a to timestamp, um mehrere verschiedene Werte zu erhalten, sodass wir am Frontend eine Liste erhalten
[1161]
von Schlüssel-Wert-Paaren, bei denen der Schlüssel der Zeitstempel und der Wert der Aktienkurs ist, also hoffentlich vorbei
[1168]
Jetzt bekommen Sie ein Gefühl dafür, wie leistungsfähig Redis Stack ist und wie es Redis in eine multimodale Datenbank verwandelt
[1176]
die Sie verwenden können, um mehrere Technologien zu ersetzen, die Sie normalerweise in Echtzeit verwenden würden
[1183]
Anwendung hier Unsere gesamte Anwendung wird von Anfang bis Ende von Redis Stack unterstützt. Wir sehen uns dann
Most Recent Videos:
You can go back to the homepage right here: Homepage





