Преобразование простой таблицы из SQL в Redis с помощью Node.js

Предположим, у меня есть таблица 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 таблиц, которые нужно соединить?)


person p0ny    schedule 02.04.2014    source источник


Ответы (1)


во-первых, Redis очень гибок, поэтому вы можете использовать ключевые имена и структуру данных для пользователей, старайтесь не подходить к этому структурированно, как mySQL.

целое число для отслеживания идентификатора пользователя.

global:index:users

сохранение пароля пользователя в виде строки

user:<id>:password

хранение информации о пользователе в хеше

user:<id>

name=>username

email=>user email

some other key=>some other data

получить идентификатор пользователя по паролю, так как мы не хотим просматривать весь user:<id>, чтобы узнать, чей это пароль.

user:<passwordHash>:id

of

user:<name>:id

person Gntem    schedule 03.04.2014