Хотите хранить в Redis через Node.js - PullRequest
8 голосов
/ 01 июня 2011

Я хочу сохранить хеш / JSON-данные пользователей в Redis и хочу добавить пользователя в хеш-пользовательские данные пользователей, как этот.

Например, users = {};

Когда пользователь rahul войдет в систему, тогда users станет.

users = {
    rahul: {
        username: 'rahul',          
    }
}

А когда пользователь namita войдет тогда

users = {
    rahul: {
        username: 'rahul',

    },
    namita: {
        username: 'namita',

    }
}

Каким будет код для этого в Redis?

Как мне инициализировать ключ users и добавить к нему rahul ?

Какую функцию мне нужно использовать из этого набора, hset и т. Д.?

А как мне получить данные users['rahul'] через Redis?

1 Ответ

22 голосов
/ 01 июня 2011

Вероятно, наиболее оптимальным решением для хранения одного хеша / json было бы использование хешей команд.У меня также была эта " дилемма ", и есть несколько вопросов относительно структуры данных, содержащей пользователей с JSON-подобными объектами в Redis.

РЕДАКТИРОВАТЬ

Использовать node_redis модуль.Он активно поддерживается профессионалом, вероятно, наиболее часто используемым драйвером node.js для Redis.Сначала вы должны использовать команду SADD , чтобы добавить новое имя объекта JSON в набор, чтобы отследить, какие элементы содержат «пользователи».Затем используйте HMSET для хранения хэшей ключ-значение объекта "user: rahul".Пример:

// add first user
client.sadd("users", "user:rahul");
client.hmset("user:rahul", "username", "rahul", "foo", "bar");

// add second user
client.sadd("users", "user:namita");
client.hmset("user:namita", "username", "namita", "foo", "baz");

Теперь вы можете получить доступ к своим пользователям с помощью различных типов команды redis hash , в зависимости от того, хотите ли вы получить только определенные значения хеш-функции или весь объект одного пользователя.Чтобы получить всех пользователей, вы можете использовать команду SMEMBERS , например.Попробуйте взглянуть на node_redis readme и examples , где вы должны найти больше информации о его API.

...