У нас есть приложение iOS, которое говорит с сервером django через REST API. Большая часть данных состоит из довольно крупных объектов Item, которые включают несколько связанных моделей, которые переводят в один плоский словарь, и эти данные редко меняются.Использование Redis в качестве промежуточного кеша для REST API
Мы обнаружили, что запрос для этого не является проблемой для Postgres, но генерация ответов JSON занимает заметное количество времени. С другой стороны, коллекции предметов варьируются для каждого пользователя.
Я думал о системе рендеринга, где мы просто строим словарь для объекта Item и сохраняем его в redis как строку JSON, таким образом мы можем обслуживать API напрямую из redis (например, HMGET (идентификатор элементов в пользовательской библиотеке) который является быстрым и позволяет относительно легко регенерировать «визуализированные экземпляры», в основном, всего лишь пару сигналов post_save
.
Интересно, насколько хорош этот дизайн, есть ли какие-либо серьезные недостатки? Возможно, есть лучший способ для Задача?
Насколько велики ответы json и сколько времени требуется, чтобы свалить json? –
говорят около 300 dicts с 20 ключами в них с некоторыми вложенными dicts, и tastypie и django-rest-framework отображают те, которые до 1 секунды на MBPr –
вы пытались использовать cjson или ultra json уже? –