2016-03-27 7 views
0

Ich lerne Redis und würde gerne wissen, ob die Verwendung von INCR zum Generieren eindeutiger Benutzer-IDs eine gute Praxis ist oder, wenn dies nicht der Fall ist zu Problemen. Hinweis: Diese Frage setzt voraus, dass es keine andere Datenbank gibtBest Practices zum Speichern von Benutzer-IDs in Redis

Der andere Ansatz, den ich mir vorstellen kann, ist die Erzeugung einer zufälligen UUID() und die Verwendung, aber für den Fall beide Ansätze akzeptabel sind, was wären die Kompromisse?

Hier einige Beispiel-Code fand ich online, das dies tut:

uid = db.incr("users:enum") 
pipe = db.pipeline() 
pipe.set("users:%s:uid" % username, uid) 
pipe.set("users:%s" % username, password_hash) 
pipe.sadd("users", username) 
+0

Der Kompromiss ist minimal, aber etwas wie 'uuid()' könnte schneller sein, da es von Dingen wie Prozess-ID, Zeitstempel usw. abhängt, die Ihr Prozess bereits "kennt" Operation zu Redis, die zu geringer Latenz führen kann. – woozyking

Antwort

0

Dies ist ein brauchbares Konzept seit INCR Atom ist. In der Tat gibt es eine tutorial auf redis.io, die diese Methode folgt.

Verwandte Themen