假设我有一个SQL表,其中包含一个名为userid(唯一,主键,自动增量),用户名(varchar)和密码(Varchar)的字段。
现在假设我想在Redis中重新创建此表。根据我的理解,最好为此表使用“哈希”。因此我的node.js代码有一个创建用户的函数:
function newUser(username,password)
{
//incr the userid
client.incr("userid",redis.print);
//Creating the user
client.get('userid',function(err,userid){
client.hmset("users", "id",userid,"name",username,"password",password);
});
}
这是对的吗?
另外,如何访问存储在哈希中的信息?我尝试以下但只能返回1行:
client.hgetall('users',function(err,user){
console.log('User Name: ' + user.name +" password = "+user.password);
})
最后,我如何加入2个哈希(就像我需要加入2个表一样?)
答案 0 :(得分:1)
首先Redis非常灵活,因此您可以为用户使用密钥名称和数据结构,尽量不要像mySQL那样以结构化方式处理这种思维。
用于跟踪用户ID的整数。
global:index:users
将用户密码存储为字符串
user:<id>:password
将用户信息存储在哈希
中 user:<id>
name=>username
email=>user email
some other key=>some other data
通过密码获取userid,因为我们不希望看到整个user:<id>
来获取密码是谁。
user:<passwordHash>:id
的
user:<name>:id