Comments 32
Исходники пакета не смотрел, но выглядит всё очень изящно! Теперь сделать подобную прослойку к varnish'у и вообще красота будет.
Используется ли это решение на живом сайте с большим трафиком?
А можно, не интимно, рассказать какой прирост дает это на реальном проекте?
Какой прирост сложно сказать, проект в котором этот кеш используется, до его применения был реализован на совсем другой платформе. Но прирост есть.
И дело не только в экономии времени, такая автоматическая система позволяет кешировать, грубо говоря, все запросы к БД, что здорово её разгружает. А сервера приложений масштабировать в случае надобности куда проще.
И дело не только в экономии времени, такая автоматическая система позволяет кешировать, грубо говоря, все запросы к БД, что здорово её разгружает. А сервера приложений масштабировать в случае надобности куда проще.
Я так понимаю это полноценный намек на горизонтальное масштабирование для django без выдирания ORM и тп штучек?
насколько сложно измерить производительность с включенным и выключенным кешем?
Невозможно, если архитектура изначально проектировалась на использование кеша. А это так в данном случае.
Само использование кеширования трансформирует арххитектуру системы. Например, обычно стараются делать меньше запросов. Кеширование же по событиям побуждает разбивать запросы на более простые, чтобы их можно было кешировать и инвалидировать независимо. Поэтому простое отключение кеша, даже если бы оно было возможно под нагрузкой, не даст адекватного сравнения.
Само использование кеширования трансформирует арххитектуру системы. Например, обычно стараются делать меньше запросов. Кеширование же по событиям побуждает разбивать запросы на более простые, чтобы их можно было кешировать и инвалидировать независимо. Поэтому простое отключение кеша, даже если бы оно было возможно под нагрузкой, не даст адекватного сравнения.
а какие бэкенды для кэша? только Redis?
мне бы varnish хотелось…
мне бы varnish хотелось…
Только redis, т.к. необходимы его структуры и операции с ними. Конкретно — множества.
Откуда желание скрестить ежа с носорогом?
Redis, зачастую, используется как кэш между бд и backend'ом, а varnish исключительно между backend'ом и клиентом.
Redis, зачастую, используется как кэш между бд и backend'ом, а varnish исключительно между backend'ом и клиентом.
Я понимаю. имелось ввиду что может быть он может работать и в другом режиме.
проект действительно хороший. обязательно буду им пользоваться.
джанга и так у меня работает с сессиями через redis_sessions.
проект действительно хороший. обязательно буду им пользоваться.
джанга и так у меня работает с сессиями через redis_sessions.
Тоже некоторое время использовал сессии в редисе, собственную реализацию. Когда занимаемая память перевалила через 400 мб, понял что надо от этого избавляться. Переделал на сессии в подписанных куках, это просто просветление — ничего не надо хранить, никуда делать запросов, сессия приходит вместе с запросом.
Может посвятишь этому свой следующий пост в блоге Django Framework?
было бы инетесно так-же почитать и комментарии к этому посту о том как другие реализовывают работу с сессиями.
было бы инетесно так-же почитать и комментарии к этому посту о том как другие реализовывают работу с сессиями.
Я пытался доки осилить по подписанным куакам, не понял как они работают. Если я хочу хранить в сессии мегаайт данных, оно что ли в куках будет туда-сюда ходить?
Очень не плохо! Обычно мы реализовывали кэширование сами на уровне менеджера модели, но у вас более универсальный подход.
Хорошее решение.
Только хотел спросить у Вас как Вы отлавливаете массовые апдейты. Но заметил строчку в описании:
Это надо будет держать в памяти при работе с Cacheops, но в целом спасибо за библиотеку.
Только хотел спросить у Вас как Вы отлавливаете массовые апдейты. Но заметил строчку в описании:
4. Массовые апдейты не приводят к инвалидации.
Это надо будет держать в памяти при работе с Cacheops, но в целом спасибо за библиотеку.
в документации забыли упомянуть про «settings.HOME_DIR + settings.FILE_CACHE_DIR»
так-же «CACHEOPS_PROFILES»
От CACHEOPS_PROFILES, возможно, следует отказаться, не вижу я в нём особого толка пока.
Файловый кеш вообще не документирован пока, так что документировать его настройки было бы странно.
Документации далеко до полноты, это верно
Файловый кеш вообще не документирован пока, так что документировать его настройки было бы странно.
Документации далеко до полноты, это верно
ну я попробовал добавить к проекту таким образом как написано в документации и тут-же выдало ошибку:
'Settings' object has no attribute 'HOME_DIR' просто чтобы хотябы ошибка не вылезала можно было освятить этот пункт в документации.
'Settings' object has no attribute 'HOME_DIR' просто чтобы хотябы ошибка не вылезала можно было освятить этот пункт в документации.
просто великолепно! очень вовремя (для меня), очень конкретно и очень полезно! земной, автору, поклон!
Приятно читать пост от замляков, а ещё приятнее что знаком с несколькими людьми из Метадизайна ;)
Удачи вам.
Удачи вам.
Интересно было бы сравнить производительность с Johnny Cache
Johnny Cache, насколько я знаю, инвалидирует сразу все запросы к модели поэтому просто неприменим если изменения часты. В тех же случаях когда он применим он должен быть быстрее потому как проще.
А что скажете про django-cache-machine, не смотрели? AFAIK в нём реализован кэш по объектам.
Sign up to leave a comment.
Cacheops