Я пытаюсь понять наиболее подходящую REDIS CMD для моего варианта использования. Я хочу кешировать контент, который несколько динамичен c. Причиной этому является безумно высокая стоимость Azure Cosmosdb.
У меня есть аукционный сайт, который получает 10 страниц одновременно с нумерацией страниц на стороне сервера. В моем случае есть два компонента, которые являются динамическими c.
- Когда пользователь делает ставку, кэш должен быть либо аннулирован / обновлен.
- Аукцион заканчивается, списки могут быть устаревшими в кеше.
Я много думал об этом, и моя идея состоит в том, чтобы использовать этот уникальный ключ
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 было бы довольно быстрым. Я хотел бы услышать мысли по этому поводу. Я ценю любую помощь или предложения!