Redis newbie - эквивалентный подход к таблице MySQL - PullRequest
6 голосов
/ 06 февраля 2011

Я новичок в Redis и надеялся на «лучшее практическое» решение для реализации эквивалента таблицы «users» в базе данных mysql для обработки пользователей в веб-приложении.

Буду ли я создавать пользовательский набор в Redis? Или база данных пользователей с SET для каждого пользователя?

Ответы [ 2 ]

8 голосов
/ 08 февраля 2011

Моя стандартная настройка для пользователей - это сериализованный объект со стандартным ключом u: ИД пользователя - этот объект извлекается при каждом запросе, и никогда не требуется доступ только к одному из свойств.

Вы также можете использовать хеш вместо json для пользовательских свойств, но моя установка включает в себя все, что используется в качестве строго типизированных объектов, и повторное выполнение на другом сервере с клиента, поэтому использование json упрощает использование универсальной десериализации.и сводит к минимуму любые задержки.

В дополнение к самому объекту пользователя вам потребуется индекс для любых полей, которые необходимо использовать для поиска пользователя - например, чтобы позволить пользователю войти в систему с адресом электронной почты, который выпотребуется ключ e: email => ИД пользователя .Хеш также будет работать здесь - важно то, что вам нужно что-то, что O (1), чтобы получить от электронной почты до объекта пользователя.

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

1 голос
/ 06 февраля 2011

Это действительно зависит от того, что вы хотите сделать с пользователями в вашем приложении.Другой вариант - каждый пользователь должен иметь свой собственный хеш, где его ключи - это свойства (поля) для каждого пользователя (firstName, lastName и т. Д.)Вы можете использовать ключ, который вы увеличиваете, как генератор идентификаторов для вставки, и, возможно, другой набор, который вы используете для хранения всех идентификаторов пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...