使用Node.js将简单表从SQL转换为Redis

时间:2014-04-02 19:37:47

标签: sql node.js express redis node-redis

假设我有一个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个表一样?)

1 个答案:

答案 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