Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Finden Sie Schlüssel nach Wert

Eines der Dinge, die Sie bei der Arbeit mit Redis schnell lernen, ist, dass Sie Ihre Datenstruktur um Ihre Zugriffsanforderungen herum entwerfen können, insbesondere wenn es um Beziehungen geht (es ist schließlich keine relationale Datenbank)

Wie Sie bereits bemerkt haben, gibt es keine Möglichkeit, nach "Wert" mit einer Zeitkomplexität von O (1) zu suchen, aber es gibt Möglichkeiten, mit Redis an das heranzugehen, was Sie beschreiben. Folgendes würde ich empfehlen:

  • Speichern Sie Ihre Benutzerdaten nach Benutzer-ID (z. B. als Hash), wie Sie es bereits tun.
  • Haben Sie für jede Dozenten-ID einen zusätzlichen Satz, der alle Benutzer-IDs enthält, die der betreffenden Dozenten-ID entsprechen.

Dies mag wie das Duplizieren der Daten der Beziehung erscheinen, da Ihre Benutzerdaten die Vorlesungs-ID speichern müssten und Ihre Vorlesungsdaten Benutzer-IDs speichern würden, aber das ist der (winzige) Preis, der zu zahlen ist, wenn man Beziehungen in einem Nein aufbauen soll -relationaler Datenspeicher wie redis. In der Praxis funktioniert das gut; Speicher ist selten ein Engpass für kleine Datensätze (denken Sie an Tausende von IDs).

Um ein besseres Bild davon zu bekommen, wie Leute Redis verwenden, um Anwendungen mit Beziehungen zu modellieren, empfehle ich, Design und Implementierung eines einfachen Twitter-Klons und den Quellcode von Lamernews zu lesen, die beide vom Redis-Autor Salvatore Sanfilippo geschrieben wurden.