Практическая (Django) стратегия и реализация кэширования? Кэш длинный, недействительный кеш при изменении данных

У меня есть приложение Django, которое получает данные почти в реальном времени (твиты и голоса), хотя обновления происходят в среднем каждую минуту или две. Однако мы хотим отображать данные, обновляя сайт и результаты API сразу же, когда они поступают.

Мы можем увидеть целую тонну нагрузки на этот сайт, поэтому моя первоначальная мысль, конечно же, связана с кешированием!

Практично ли иметь какой-то кэш Memcached, который вручную аннулируется другим процессом или событием? Другими словами, я бы долго кэшировал просмотры, а затем новые твиты и голоса делали все представление недействительным.

  • Оправдывают ли, возможно, скромные улучшения производительности дополнительную сложность?
  • Есть ли практическая реализация, которую я мог бы создать (я работаю с другими разработчиками, поэтому взламывать тонны вещей вокруг каждого вызова ответа - не лучший вариант)?

​​Меня не беспокоит аннулирование только некоторых объектов, и я подумал о создании подкласса бэкэнда MemcachedCache , чтобы добавить некоторые функции в соответствии с этой стратегией . Но, конечно, сеансы Django также используют Memcached для записи через кеш, и я не хочу аннулировать то .

7
задан Dave 22 September 2011 в 22:24
поделиться