2009-07-05 4 views
3

Я работаю над небольшим проектом, и я хотел бы предоставить конечным пользователям несколько параметров кэширования. Я подумал, что с Django довольно упростить обмен файлами memcached для кэширования базы данных или файлов. Моя реализация memcached работает как чемпион без каких-либо проблем. Я размещал временные метки на своих страницах, и завиток последовательно показывает старые временные метки в местах, где я хочу, чтобы кеширование работало правильно. Однако, когда я перехожу к кэшированию базы данных, я не получаю никаких записей в базе данных, и кэширование явно не работает.Кэширование базы данных Django

Из того, что я вижу в документации все, что должно быть необходимо, чтобы изменить бэкенд от:

CACHE_BACKEND = 'memcached://localhost:11211' 

To:

CACHE_BACKEND = 'db://cache_table' 

существует таблица после выполнения требуемого manage.py (createcachetable), и я могу просмотреть его просто отлично. Я в настоящее время тестирую, поэтому я использую sqlite3, но это не имеет значения, насколько я могу судить. Я могу подтвердить, что таблица полностью пуста и не была написана ни в какой точке. Кроме того, как я уже говорил ранее, мои временные метки также «неправильны», давая мне больше доказательств того, что что-то не совсем правильно.

Любые мысли? Я использую sqlite3, Django 1.0.2, python 2.6, обслуживающий Apache в настоящее время на машине Ubuntu Jaunty. Я уверен, что просто замалчиваю что-то простое. Спасибо за любую предоставленную помощь.

ответ

7

Согласно документации, вы должны создать таблицу, не используя SyncDB, но со следующим:

python manage.py createcachetable cache_table 

Если вы еще не сделали этого, попробовать и посмотреть, если он не работает.

+0

Опечатка, извините. Исправлено это – f4nt

+0

@lemonad Как только я что-то обновляю, а затем вызываю то же обновление API, данные не получают его от кешированной базы данных, как я должен справиться с этой проблемой? –

+0

@ PiyushS.Wanare Этот вопрос с 2009 года, поэтому, вероятно, лучше вы откроете новый вопрос. В общем, вы должны предоставить свою собственную схему аннулирования кэша. То есть, если вы что-то обновляете, вам нужно вручную удалить значение из кеша. В противном случае старое значение все равно будет обслуживаться. – lemonad