In meiner Website dürfen Benutzer die gleichen Benutzernamen behalten. Darüber hinaus speichere ich zu jedem Zeitpunkt, zu dem sich ein Benutzer anmeldet, vorübergehend seinen Benutzernamen in einem Rediskey mit einer ttl
von 10 Minuten.Suche nach Wertkollisionen aus einer sich ändernden Sammlung von Redis Schlüsseln
Die Frage ist: gibt es irgendeinen Weg - mit Redis - alle Benutzer-IDs online innerhalb der letzten 10 Minuten zu finden, teilen den gleichen Benutzernamen?
Derzeit extrahiere ich alle Schlüsselwerte und finde Kollisionen in Python - was nicht wirklich hilft, da ich dies zur Laufzeit mehrmals machen muss (und es gibt viel Benutzerverkehr).
Ich vermute, dass ich Sets mit einem eindeutigen Benutzernamen als Schlüssel erstellt haben könnte, und alle Benutzer-IDs im Set gespeichert, um mir O (1) Look-Ups für Benutzer mit den gleichen Benutzernamen zu geben. Aber dann müsste ich die 10 Minuten TTL-Bedingung opfern (die ich für jeden Benutzernamen einzeln benötige).
Btw Redis/Lua Anfänger hier, daher die noob Frage (wenn es ist).
Cool! Das sieht gut aus und wird mich endlich dazu bringen, mein erstes richtiges Lua-Skript zu schreiben. Ich dachte mir, ich werde lokal eine 'usernames.lua' speichern und dann in Python aufrufen. Soll ich https://labix.org/lunatic-python verwenden, oder kann ich einfach die lua-Datei als ein Modul wie typische py-Dateien importieren? –
Das ist eine andere Frage Hassan :) Folgen Sie diesem Beispiel - https://pypi.python.org/pypi/redis#lua-scripting –
Gotcha! Wie immer, vielen Dank, dass Sie den Weg gezeigt haben. –