2016-03-27 24 views
0

Redis'i öğreniyorum ve benzersiz kullanıcı kimlikleri oluşturmak için INCR kullanmanın iyi bir prati olup olmadığını öğrenmek isterim, ya da olmasa da, olası bir senaryo olabilir. sorunlara Not: bu soruda, başka bir veritabanı bulunmadığı varsayılmaktadır.Redis'te kullanıcı kimliklerini kaydetmek için en iyi yöntemler

Düşünebildiğim diğer yaklaşım, rastgele bir uuid() oluşturmak ve bunu kullanmaktır, ancak her iki yaklaşımın kabul edilebilir olması durumunda, ticaret offs nedir? INCR atomik olduğundan bu geçerli bir yaklaşımdır

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

Satış noktası minimumdur, ancak uuid() gibi bir şey kullanmak, işlem kimliğine, zaman damgasına vb. Gibi işlemlere zaten bağlı olduğundan, işleminizin zaten "bilindiği" gibi şeylere bağlı olduğundan daha hızlı olabilir. Redis için küçük gecikme ile sonuçlanan işlem. – woozyking

cevap

0

:

İşte bunu yapar çevrimiçi bulduğumuz bazı örnek kod. Aslında, bu yöntemi takip eden redis.io üzerinde bir tutorial vardır.