Ich frage mich, was die Vorteile der Verwendung von Benutzer-IDs waren, anstatt nur den eindeutigen Benutzernamen für die Schlüssel zu verwenden.Benutzername oder ID für Schlüssel in Redis
- user: username => {Passwort: HASH, Alter: 45}
- Benutzer: 0 => {username: Benutzername, Passwort: HASH, Alter: 45}
Beachten Sie, dass ich würde Benutzer nach Namen suchen wollen und daher einen zweiten Satz von Schlüsselwerten benötigen, um Benutzernamen mit IDs zu verknüpfen.
Da jeder Benutzername eindeutig ist und alphanumerisch sein muss, gibt es einen bestimmten Grund, warum es vorteilhaft sein könnte, das ID-System zu verwenden.
Der Hauptgrund, warum ich das frage, ist, weil ich hauptsächlich IDs verwendet habe, da sie die Suchzeiten in meiner Datenbank verringerten, besonders wenn die Datenbank in irgendeiner Weise normalisiert wurde. Aber Redis profitiert nicht von diesem Vorteil und so fragte ich mich, welche anderen Gründe es geben könnte, Benutzer-IDs anstatt nur die Benutzernamen zu verwenden.
Vielen Dank für jede Hilfe,
Pluckerpluck
P. S. Aufgrund der Art und Weise, wie Redis Hashes handhabt, bin ich sehr unsicher bezüglich der Speicherunterschiede zwischen den beiden Methoden, so dass Informationen darüber gut sein können, obwohl ich das später selbst ausprobieren kann.
steuern Danke, dass Sie dieses Szenario hervorgehoben haben. Nur eine kurze Frage: Wenn ich IDs verwenden würde. Ich würde dann einen Benutzernamen-ID-Beziehungen benötigen, um die Suche nach Benutzernamen zu ermöglichen. Denkst du, ein sortierter Satz (Rang ist die ID) wäre ein guter Weg, das zu tun? Oder stattdessen ein Hash? – Pluckerpluck
Hash ist besser aus zwei Gründen - a) Es verwendet weniger Speicher als eine sortierte Menge, und b) Es gibt keine definierte Reihenfolge der Benutzer, so dass es konzeptionell keinen Sinn macht, eine sortierte Menge zu verwenden. –
Ich würde einen Hash verwenden, um Benutzernamen zu indizieren. Sie sind viel kompakter als zset im Speicher. Die Verwendung eines Zsets wäre nur sinnvoll, wenn Sie Bereichsabfragen für Namen unterstützen müssten ... –