Использование правильного REDIS CMD для динамического сценария c - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь понять наиболее подходящую REDIS CMD для моего варианта использования. Я хочу кешировать контент, который несколько динамичен c. Причиной этому является безумно высокая стоимость Azure Cosmosdb.

У меня есть аукционный сайт, который получает 10 страниц одновременно с нумерацией страниц на стороне сервера. В моем случае есть два компонента, которые являются динамическими c.

  1. Когда пользователь делает ставку, кэш должен быть либо аннулирован / обновлен.
  2. Аукцион заканчивается, списки могут быть устаревшими в кеше.

Я много думал об этом, и моя идея состоит в том, чтобы использовать этот уникальный ключ

const key = `{ auctionType: { $ne: 'privateAuction' } } { auctionEndDateTime: { $gte: timeTag } } } }.skip(10 * (currentPage - 1)).sort({ dateCreated: -1 }).limit(10)

и кэшировать 10 списков одновременно, используя currentPage в качестве отдельного значения для каждого ключа.

Тогда, если я смогу каждый раз анализировать обратно до JSON и l oop через разные ключи / фильтр, пока не найду соответствующий аукцион, а затем аннулирую эту страницу / обновлю данные, чтобы кэш обновился .

Что касается динамических аукционов # 1028 * выпуск № 2, я могу просто отфильтровать их на внешнем интерфейсе, если кеш возвращает завершенные аукционы, или использовать функцию azure, которая проверяет и делает недействительными ключи с устаревшими аукционами, используя Запланированный триггер. (не волнуйтесь по поводу этой части)

Мой вопрос: есть ли CMD REDIS, который бы работал в этом сценарии. После исследования я думаю, что HSET сработает и проведет аукцион с ключом ha sh. Я думал, что могу создать для l oop, который проходит по каждому ключу с currentPage из const key в качестве значения Dynami c, чтобы циклически проходить по ключам и использовать что-то вроде фильтра ES6, чтобы найти идентификатор аукциона, который получает ставку на и обновить / аннулировать. Если бы я сделал это, у меня были бы проблемы с производительностью, если бы у меня было более 50 страниц в день, но я думаю, что использование фильтра ES6 было бы довольно быстрым. Я хотел бы услышать мысли по этому поводу. Я ценю любую помощь или предложения!

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