Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Redis中保存用户ID的最佳实践_Redis_Nosql - Fatal编程技术网

在Redis中保存用户ID的最佳实践

在Redis中保存用户ID的最佳实践,redis,nosql,Redis,Nosql,我正在学习Redis,我想知道使用INCR生成唯一的用户ID是否是一个好的实践,或者,如果不是,可能会导致问题的一些场景是什么。注意:此问题假设不涉及其他数据库 我能想到的另一种方法是生成一个随机uuid()并使用它,但如果这两种方法都是可接受的,那么取舍是什么呢 下面是我在网上找到的一些示例代码: uid = db.incr("users:enum") pipe = db.pipeline() pipe.set("users:%s:uid" % username, uid) pipe.

我正在学习Redis,我想知道使用INCR生成唯一的用户ID是否是一个好的实践,或者,如果不是,可能会导致问题的一些场景是什么。注意:此问题假设不涉及其他数据库

我能想到的另一种方法是生成一个随机uuid()并使用它,但如果这两种方法都是可接受的,那么取舍是什么呢

下面是我在网上找到的一些示例代码:

 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)

这是一种有效的方法,因为INCR是原子的。事实上,redis.io上有一个遵循此方法的操作。

折衷是最小的,但是使用
uuid()
之类的东西可能会更快,因为它取决于进程已经“知道”的进程ID、时间戳等,而无需对redis执行可能导致较小延迟的操作。