• Актуальность данных при кэшировании, решается ли?

    @TochnoNeVadim Автор вопроса
    Возвращать изображение рамки и аватара по ID пользователя - было бы решением части проблемы, но к сожалению, имя файла той же рамки на сервере будет с uuid в названии. Это всё ещё решение, если каждый раз из кэша запрашивать какой файл соответствует этому ID, и возвращать результат.

    Тогда легко сбросить/обновить кэш из кода, и вообще выглядит вкусно.
    Как минус - обращение к такой ссылке каждый раз будет дёргать кэш.

    Схема кажется рабочей, но учитывая что обращение к изображению по такой ссылке всегда будет дёргать кэш - кажется более правильным самим сервером приклеить URL к ответу. Тогда это частично возврат к абзацу: "Пробовали отказаться от Join-ов и собирать ответ..."

    На примере /tickets/91/update - получается что для реализации такого метода, придётся вытянуть список всех тикетов пользователя, а затем выпилить из кэша то что там может висеть? И всё равно придётся пробегаться по тому, чего в кэше может и не быть.
    Написано
  • Актуальность данных при кэшировании, решается ли?

    @TochnoNeVadim Автор вопроса
    Дмитрий, очевидные вещи.
    Проблема как раз в том что никакой прямой связи между "рамкой" и "тикетами" нет.

    Чтобы дропнуть кэш в тикетах, получается такая цепочка:
    1. Администратор обновляет картинку рамки
    2. Получить всех пользователей с этой рамкой (привет ~10к юзеров, и затем ещё больше)
    3. Очистить кэш всех этих пользователей (~10k del вызовов)
    4. Получить все тикеты этих пользователей (~65% создавали тикет, а это мин. 6500 юзеров)
    5. Почистить кэш выборки всех тикетов где есть этот пользователь. (собственно мин. 6500 проверочек, а del вызовется ~100-200 раз)
    Написано