django-cachebot

Софтуер снимки:
django-cachebot
Софтуер детайли:
Версия: 0.4.1
Дата на качване: 11 May 15
Розробник: David Ziegler
Разрешително: Безплатно
Популярност: 11

Rating: 3.0/5 (Total Votes: 1)

Джанго-cachebot е Django приложение, което осигурява автоматизирано кеширане и анулиране.
<Силен> Инсталиране
& Nbsp; 1. easy_install Джанго-cachebot или PIP инсталирате Джанго-cachebot
& Nbsp; 2.
& Nbsp; Добави cachebot на вашите INSTALLED_APPS
& Nbsp; 3.
& Nbsp; Определете кеш гръб към една от Неуспех в cachebots.backends, например:
& Nbsp; CACHE_BACKEND = 'cachebot.backends.memcached:? //127.0.0.1: 11211 / таймаут = 0 "
Актуални подкрепен Неуспех са:
cachebot.backends.dummy
cachebot.backends.memcached
cachebot.backends.pylibmcd
Cachebot маймуна петна по подразбиране за управление на Django и queryset да CacheBotManager и CachedQuerySet по подразбиране, използвани от вашия проект Django.
<Силен> Usage
Да предположим, че имаше заявка, че изглеждаше така и ти искаше да го кешира:
Photo.objects.filter (потребителското = употреба, статус = 2)
Просто .cache () добавете към веригата queryset така:
Photo.objects.cache (). Филтър (потребителското = употреба, статус = 2)
Тази заявка ще получите недействителните ако е изпълнено някое от следните условия:
1. Един от обектите върнати от заявката се променя.
2. потребителя се променя.
3. Photo е модифицирана и има статут = 2.
4. снимка е модифицирана и има ръководство = употреба.
Тези критерии за обявяване на недействителност вероятно е твърде предпазливи, защото ние не искаме да обезсили този кеш всеки път снимка със статут = 2 е спасен. За да направите фина настройка на критериите за обявяване на недействителност, можем да укажете да обезсили само на определени области. Например:
Photo.objects.cache ("потребител"). Филтър (потребителското = употреба, статус = 2)
Тази заявка ще получите недействителните ако е изпълнено някое от следните условия:
1. Един от обектите върнати от заявката се променя.
2. потребителя се променя.
3. Photo е модифицирана и има ръководство = употреба.
Джанго-cachebot може да обработва и select_related, форуърдни отношения, и обратна връзка, а именно:
Photo.objects.select_related (). Кеш ("потребител"). Филтър (user__username = "Давид", статус = 2)
Photo.objects.cache ("потребител"). Филтър (user__username = "Давид", статус = 2)
Photo.objects.cache ("message__sender"). Филтър (message__sender = употреба, статус = 2)
<Силен> Settings
CACHEBOT_CACHE_GET подразбиране: False
ако CACHEBOT_CACHE_GET = True, всички objects.get заявки автоматично ще бъдат кеширани. Това може да се замени на ниво мениджър така:
клас снимки (models.Model):
& Nbsp; ...
& Nbsp; обекти = models.Manager (cache_get = True)
CACHEBOT_CACHE_ALL подразбиране: False
ако CACHEBOT_CACHE_ALL = True, всички заявки ще бъдат автоматично кеширани. Това може да се замени на ниво мениджър така:
клас снимки (models.Model):
& Nbsp; ...
& Nbsp; обекти = models.Manager (cache_all = True)
CACHE_PREFIX подразбиране: ''
Да предположим, че имате развитие и споделят едни и същи Memcached сървъра производство сървър. Обикновено това е лоша идея, защото всеки сървър може да се презаписва ключове кеш другата сървъра. Ако добавите CACHE_PREFIX вашите настройки, всички ключове кеш ще имат тази представка, приложена към тях, така че можете да избегнете този проблем.
<Силен> Уговорки (Важно!)
& Nbsp; 1. Джанго-cachebot изисква Джанго 1.2 или по-висока
& Nbsp; 2. Добавяне / Премахване на обекти с ManyRelatedManager няма да анулират автоматично. Това е така, защото сигнали за тези видове дейности, не са в Django до 1.2. До тогава, ще трябва ръчно да обезсили тези заявки така:
& Nbsp; от cachebot.signals внасят invalidate_object
& Nbsp; user.friends.add (приятел)
& Nbsp; invalidate_object (ръководство)
& Nbsp; invalidate_object (приятел)
& Nbsp; 3. брои () заявки няма да се кешират.
& Nbsp; 4. Ако сте се обезсилва на поле, което е в диапазона или изключва заявка, тези заявки ще се обявяват за недействителни, когато нещо в промените на масата. Например следното ще се обезсилва, когато нещо на масата за потребителя променила:
& Nbsp;. Photo.objects.cache ("потребител") филтър (user__in = потребители, статус = 2)
& Nbsp;. Photo.objects.cache ("потребител") изключва (потребителското = употреба, статус = 2)
& Nbsp; 5. Може би трябва да се използва като инструмент Джанго-MemCache-статус да проверите състоянието на кеш паметта. Ако MemCache overfills и започва да се понижава ключове, че е възможно, че вашите заявки не могат да се обявяват за недействителни.
& Nbsp; 6. .values_list () не кешира все още. Трябва да направя нещо подобно, вместо:
& Nbsp; [. Снимка ['ID'] за снимка в Photo.objects.cache ("потребител") филтър (ръководство на потребителя =) .values ​​("ID")]
& Nbsp; 7. Това е възможно, че има случаи ръба съм пропуснати. Джанго-cachebot е все още в това е ранна детска възраст, така че все още трябва да двойна проверка, че вашите заявки стават кеширани и обезсилен. . Моля, уведомете ни, ако забележите някакви странни несъответствия

<силни> Изисквания

  • Python
  • Django

Друг софтуер на разработчика David Ziegler

django-urlcrypt
django-urlcrypt

12 May 15

Коментари към django-cachebot

Коментари не е намерена
добавите коментар
Включете на изображения!