2017-11-23 2 views
1

Ich bin gerade stecken geblieben. Ich habe ein Problem, wenn ich mit einer Entität arbeite, ich möchte es in Redis speichern, aber nach einiger Zeit möchte ich diese Entität abrufen, aber ich weiß nicht, welche Art von Abfrage wird es durchsucht werden.Redis Mehrfachschlüssel für Wert (multipliziert die Suche nach Schlüsseln)

Also, ich muss mehrere Schlüssel in Redis speichern. Und ich werde meine Entität durch mehrere Abfragen suchen können.

Zum Beispiel Ich habe eine Einheit:

public class Book 
{ 
    int Id, 
    string Name 
} 

In einer Zeit, ich diese Entität von Id suchen möge, in einem anderen Fall nach Namen.

Haben Sie irgendwelche Vorschläge oder zu lösen, wie ich es tun kann? Vielleicht kann ich die Tags oder etwas ähnliches verwenden.

Vielen Dank !!!

Antwort

0

Ja, ich habe die Antwort gefunden. In Redis können Sie das Dictionary der Werte verwenden. Also, nach diesem Problem, müssen wir Daten speichern mit Schlüssel & Wert, wo innerhalb der Wert haben wir wieder Schlüssel & Wert.

Dann erhalten Sie Werte mit zwei Schlüsseln.

Als Ergebnis Sie etwas wie das

HSET myhash field1 "Hello"

Mehr Informationen über die offizielle Website (https://redis.io/commands/hset)

Wenn wir über Leistung sprechen haben, bedeutet dies, dass Wir haben Zeitkomplexität: O (N) wobei N die Gesamtzahl der Elemente in allen gegebenen Mengen ist.

Durch die folgenden Regeln: O (n) Zeit

1. Traversing an array 
2. Traversing a linked list 
3. Linear Search 
4. Deletion of a specific element in a Linked List (Not sorted) 
5. Comparing two strings 
6. Checking for Palindrome 
7. Counting/Bucket Sort and here too you can find a million more such examples.... In a nutshell, all Brute Force Algorithms, or Noob ones which require linearity, are based on O(n) time complexity 

Also, bedeutet dies, dass die letzte Zugriffszeit auf das Element gleich sein wird, etwa: O (n) + O (m) ;

1

Redis ist nicht wie ein normaler tabellenbasierter Datenbankserver; Sie können nicht willkürlich suchen. Wenn Sie nach etwas nach ID suchen möchten, müssen Sie manuell indizieren von ID - vermutlich über einen "Hash" oder ähnlichem, der vom Schlüsselwert zum Hauptelementschlüssel geht (wie auch immer Sie den Hauptschlüssel speichern) Artikel).

Wenn Sie Bequemlichkeit über diese Art der Sache wollen, suchen Sie vielleicht bei RediSearch - ein optionales Modul für redis, die diese Art von Szenario vereinfacht, während Suchoptionen gegen nominierten Mitglieder bereitstellt. Ihre Buchobjekte würden zu "Dokumenten" in der Redisearch-Nomenklatur werden.

Verwandte Themen