2011-02-06 1 views
6

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

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

ответ

8

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

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

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

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

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^