Низкоуровневое кеширование с Django - PullRequest
2 голосов
/ 14 декабря 2010

Вместо того, чтобы кэшировать весь сайт или целые просмотры, я решил кэшировать только несколько сложных запросов, используя низкоуровневый API-интерфейс кэширования.1004 *

Это работает почти , как и ожидалось ( вопрос 01: есть ли лучший способ сделать это?),но если я установлю CACHE_TIMEOUT на большое значение (86400: БД обновляется один раз в день),похоже, что CACHE_TIMEOUT переопределяется чем-то другим, а значение кэшируется всего на несколько минут ...

( вопрос 02: ) Что я делаю неправильно?Мой тайм-аут слишком длинный?Или, может быть, я кеширую слишком много информации?(value содержит ~ 500-1000 объектов и оценивается в 50-60 различных страницах / ключах)

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Некоторые серверы кэша (например, memcached) имеют потери, и более новые элементы вытесняют более старые элементы из кэша.Следите за статистикой кеша и соответствующим образом изменяйте конфигурацию и / или поведение.

0 голосов
/ 14 декабря 2010

Я не знаю, какой сервер кеша вы используете, и как вы точно установили время ожидания, но, возможно, вы ошибаетесь (из документации django по кэшированию ):

Каждый сервер кеша может принимать аргументы. Они даны в стиль строки запроса на Настройка CACHE_BACKEND. Допустимые аргументы являются следующими:

  • timeout: время ожидания по умолчанию в секундах, используемое для кэша. это аргумент по умолчанию равен 300 секундам (5
  • ...

CACHE_BACKEND = "memcached://127.0.0.1:11211/?timeout=60

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...