Хранение полной коллекции красноречивых моделей в Redis может быть медленнее, чем ожидалось.
В моем случае мне пришлось создать вложенную выборку с лотом where
, count
, join
, group by
и order by
... и т. Д.
Он потребляет много ресурсов при каждом запросе, поэтому я попытался кэшировать результат.Это было не лучшее решение, потому что оно было (в 4 раза) медленнее, чем я хотел (ответ 200+ мс).
Решение - SELECT id FROM ...
из "огромного" запроса и хранения идентификаторов в redis.После этого SQL-запрос выглядит как SELECT * FROM <table> WHERE id IN (...);
в каждом запросе.(При необходимости измените порядок данных в запросе sql)
Таким образом, можно быстро запросить необходимые данные из redis и sql.Среднее время ответа составляет менее 50 мс.
Надеюсь, это поможет.