2013-03-25 1 views
0

Я пытаюсь найти лучшего кандидата для хранения данных следящего/следующего пользователя, Я думал сначала, чтобы сохранить его в Redis в наборе, где пользователь -> набор пользователей ids, но потом я подумал о сценарии, где для пользователя более 1 миллиона или даже 10 миллионов последователей, как Redis справится с таким огромным набором? также нет способа сделать разбиение на страницы на набор в redis, я должен получить весь набор, который не будет работать, если пользователь хочет просмотреть, кто последует за ним. Если я храню его в MySQL, я могу определенно сделать разбиение на страницы, но может потребоваться много времени, чтобы получить 10 миллионов записей из базы данных всякий раз, когда мне нужно создать пользовательский фид, я могу сделать это в старом партийном режиме, но все равно звучит довольно болезненно, когда пользователь, у которого есть много последователей, опубликует что-то, а затем обработка этих 10 миллионов записей займет вечность только для того, чтобы забрать своих последователей. Стоит ли хранить его в MySQL для разбивки на страницы (главным образом, Frontend) и в Redis для обмена сообщениями с событиями, который создает фид активности?MySQL vs Redis для хранения подписчиков/следующих пользователей

ответ

0

Это личное решение, следует ли использовать redis или mysql для выполнения этой задачи. Обе эти проблемы не будут иметь проблем с этими 10 миллионами записей.

MySQL имеет команду LIMIT x, y для получения подмножества последователей из базы данных.

Для redis вы можете использовать отсортированные наборы и использовать идентификатор пользователя следящего устройства или время, которое пользователь начал после оценки для сортированного набора. И как MySQL redis поддерживает получение подмножества большого сортированного набора.