Удалить и вставить данные в Redis Cache каждые 2 минуты
У меня есть сценарий, где мне нужно синхронизировать мои данные MySQL в кэш Redis каждые 2 минуты.
В основном у меня есть 2 таблицы категорий и таблицы статей. Каждая статья относится к определенной категории. Извлечение: мне нужно получить статьи определенного раздела и иногда ограничивать их.
Я видел 5 структур данных, доступных в Redis, но запутался, выбирая одну из них, которая будет соответствовать этим требованиям.
Каждые 2 минуты все данные должны быть удалены и вставлены.
Так что это лучший способ, которым я могу продолжать это.
1 ответ
Одно из предложений, которое может служить вашему сценарию:
Хеш-таблицы для размещения ваших статей и категорий.
Сортировка Установите для работы в качестве индекса для последних статей в категории.
Из вышесказанного мы будем:
Добавление объектов в хеш-таблицы внутри Redis для категорий и статей. это поможет вам получить выгоду от структуры данных с постоянной средней сложностью, как упоминалось здесь.
HMSET article_with_id_{1234} field1 value1 .. etc
HMSET category_with_id_{567} field1 value1 .. etc
Теперь вам понадобится структура, чтобы соединить их вместе. Начните создавать отсортированные наборы как
one category -> many articles
ниже приведен пример:ZADD category_{category_id} {Sorting Score - it could be the article_id in descending order or the timestamp as you mentioned} {article ID}
Теперь у вас должен быть индекс, на который вы можете ссылаться в каждой категории. Таким образом, данные для извлечения будут выглядеть так:
ZREVRANGE category_{category_id} 0 10
Вытащить отсортированный набор из 10 самых высоких статей из этой категории. теперь это также поможет в нумерации страниц.
Из собранных вами идентификаторов статей вы можете получить подробную информацию о статьях из их хеша с помощью HGET