Создание ранжированного канала для подписчиков с помощью Redis 5.0.3 - PullRequest
0 голосов
/ 24 февраля 2019

Этот вопрос касается реализации записи разветвления через различные структуры данных, доступные в redis.


У меня есть веб-приложение на Python, где пользователи публикуют контент для потребителей контента, посещающих приложение.Приложение имеет средний уровень использования - около 20 000 ежедневно активных пользователей.

Пока что каждый пользователь просматривает «универсальный» канал.Это одинаково для всех.Я хочу реализовать индивидуальную функцию подачи.Пользователи должны просто посмотреть, что публикуют те, за кем они следят.

Самый простой подход - lpush post_id в список, посвященный каждому подписчику.Как только / или указанный подписчик выходит в сеть, он может просматривать последние актуальные для него предметы.

Достаточно просто.Это хорошо работает, когда я хочу показать отсортированный по времени канал.

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

Я могу использовать отсортированный набор для каждого пользователя и использовать zadd, чтобы нажатьв соответствующий список с данной оценкой.

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

Что может быть лучше для реализации такого рода каналов с помощью того, что API Redis предлагает на данный момент (т. Е. Версия 5.0.3).

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