django-cachebot

Software screenshot:
django-cachebot
Podrobnosti Software:
Verze: 0.4.1
Datum uploadu: 11 May 15
Vývojka: David Ziegler
Licence: Volný
Popularita: 11

Rating: 3.0/5 (Total Votes: 1)

Django-cachebot je aplikace, Django, který poskytuje automatické ukládání do mezipaměti a zneplatnění.
Instalace
& Nbsp; 1. easy_install Django-cachebot nebo PIP nainstalovat Django-cachebot
& Nbsp; 2.
& Nbsp; Přidat cachebot ke svým INSTALLED_APPS
& Nbsp; 3.
& Nbsp; Nastavení mezipaměti backend k jednomu z backendů v cachebots.backends, například:
& Nbsp; CACHE_BACKEND = 'cachebot.backends.memcached:? //127.0.0.1: 11211 / timeout = 0'
Současné podporované backends jsou:
cachebot.backends.dummy
cachebot.backends.memcached
cachebot.backends.pylibmcd
Cachebot opice záplaty výchozí Django správce a queryset aby CacheBotManager a CachedQuerySet výchozí nastavení používané projektu Django.
Použití
Předpokládejme, že jste měli dotaz, který vypadal takhle a vy chtěli mezipaměti to:
Photo.objects.filter (user = uživatel, status = 2)
Jen .cache () přidat do queryset řetězci, jako je takto:
Photo.objects.cache (). Filtr (user = uživatel, status = 2)
Tento dotaz dostane zpochybněna, pokud některá z následujících podmínek:
1. Jeden z objektů vrácených dotazem je změněna.
2. Uživatel je změněna.
3. Fotka je upraven a má status = 2.
4. Fotka je upraven a má user = uživatel.
Tato kritéria zneplatnění je pravděpodobně příliš opatrný, protože nechceme, aby neplatnost cache pokaždé Photo se stavem = 2 je uložen. Chcete-li doladit kritéria zneplatnění, můžeme určit pouze vyvrátit o určitých oblastech. Například:
Photo.objects.cache ("uživatel"). Filtr (user = uživatel, status = 2)
Tento dotaz dostane zpochybněna, pokud některá z následujících podmínek:
1. Jeden z objektů vrácených dotazem je změněna.
2. Uživatel je změněna.
3. Fotka je upraven a má user = uživatel.
Django-cachebot schopen zpracovat také select_related, dopředu vztahy, a zvrátit vztahy, tj:
Photo.objects.select_related (). Mezipaměť ("uživatel"). Filtr (user__username = "David", status = 2)
Photo.objects.cache ("uživatel"). Filtr (user__username = "David", status = 2)
Photo.objects.cache ("message__sender"). Filtr (message__sender = user, status = 2)
Nastavení
CACHEBOT_CACHE_GET výchozí: False
pokud CACHEBOT_CACHE_GET = True, všechny objects.get dotazy budou automaticky ukládány do mezipaměti. To může být přepsána na úrovni správce, jako tak:
třídy Fotky (models.Model):
& Nbsp; ...
& Nbsp; objekty = models.Manager (cache_get = True)
CACHEBOT_CACHE_ALL výchozí: False
pokud CACHEBOT_CACHE_ALL = True, všechny dotazy budou automaticky ukládány do mezipaměti. To může být přepsána na úrovni správce, jako tak:
třídy Fotky (models.Model):
& Nbsp; ...
& Nbsp; objekty = models.Manager (cache_all = True)
CACHE_PREFIX default: ''
Předpokládejme, že máte vývoj a sdílení stejné Memcached serveru produkční server. Obvykle to je špatný nápad, protože každý server může být přepsání mezipaměti klíče druhého serveru. Pokud přidáte CACHE_PREFIX do nastavení, budou všechny mezipaměti klíče mají tuto předponu připojenou k nim, takže se můžete vyhnout tomuto problému.
Upozornění (Důležité!)
& Nbsp; 1. Django-cachebot vyžaduje Django 1.2 nebo vyšší
& Nbsp; 2. Přidání / Odstranění objekty s ManyRelatedManager se automaticky neruší. Důvodem je, že signály pro tyto typy operací, nejsou v Django až 1,2. Do té doby, budete muset ručně vyvrátit tyto dotazy jako tak:
& Nbsp; od cachebot.signals importovat invalidate_object
& Nbsp; user.friends.add (přítel)
& Nbsp; invalidate_object (uživatel)
& Nbsp; invalidate_object (přítel)
& Nbsp; 3. Počet () dotazy nebude mít mezipaměti.
& Nbsp; 4. Pokud jste zrušení platnosti na pole, které je v rozsahu nebo vyloučit dotaz, budou tyto dotazy dostanete zrušena když nic změny tabulky. Například by se vkládá dostat zrušena, když něco na stole uživatel změnil:
& Nbsp;. Photo.objects.cache ("uživatel"), filtr (user__in = uživatelů, status = 2)
& Nbsp;. Photo.objects.cache ("uživatel"), vyloučit (user = uživatel, status = 2)
& Nbsp; 5. Měli byste pravděpodobně používat nástroje, jako Django-Memcache-stav zkontrolovat stav vašeho cache. Pokud Memcache overfills a začíná klesá klíče, je možné, že vaše dotazy nemusí dostat zrušena.
& Nbsp; 6. .values_list () neukládá do mezipaměti dosud. Měli byste udělat něco takového, místo:
& Nbsp; [. Fotografie ["id"] pro fotografii v Photo.objects.cache ("user") filtr (user = uživatel) .values ​​("id")]
& Nbsp; 7. Je možné, že tam jsou krajní případy, jsem vynechal. Django-cachebot je ještě v jeho dětství, takže byste se měli ještě jednou zkontrolujte, že vaše dotazy jsou stále mezipaměti a zrušena. . Prosím, dejte mi vědět, pokud si všimnete jakýchkoli podivné nesrovnalosti

Požadavky na :

  • Python
  • Django

Ostatní software developer David Ziegler

django-urlcrypt
django-urlcrypt

12 May 15

Komentáře k django-cachebot

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!