Django-Newcache

Verbeterde MEMCACHED CACHE BACKEND VOOR DJANGO
Download nu

Django-Newcache Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Eric Florenzano
  • Uitgever website:
  • http://code.google.com/u/floguy/

Django-Newcache Tags


Django-Newcache Beschrijving

Verbeterde Memcached Cache Backend voor Django Django-Newcache is een verbeterde Memcached Cache Backend voor Django. Het biedt twee belangrijke voordelen ten opzichte van de ingebouwde cachebackend van Django: * het ondersteunt PYLIBMC. * Het zorgt ervoor dat een functie op elke toets wordt uitgevoerd voordat deze naar MemCached wordt verzonden. Het heeft ook een aantal behoorlijk mooie standaardinstellingen. Standaard is de functie die op elke toets wordt uitgevoerd een hashes, versies en smaken de sleutel. Meer daar later. Hoe de eenvoudigste manier te installeren is het gewoon instellen als uw cache-backend in uw instellingen.py, zoals SO: cache_backend = 'Newcache: //127.0.0.1: 11211 /? Binair = True'Note dat wij' ve gaf een extra argument, binair, aan de backend. Dit komt omdat Pylibmc ondersteunt met behulp van de binaire modus om met Memcache te praten. Dit is een volledig optionele parameter en kan veilig worden weggelaten om de oude tekstmodus te gebruiken. Het wordt genegeerd bij het gebruik van Python-Memcached.Default Beheemerarier We zeiden dat het door standaard IT-hashes, versies en smaken elke sleutel is. Wat betekent dit? Laten we door elk item in detail gaan. Keys in memcached worden geleverd met veel beperkingen, zowel op hun lengte als op hun inhoud. Vrijwel gesproken betekent dit dat je geen spaties in je sleutels kunt plaatsen, en ze kunnen niet erg lang zijn. Een eenvoudige oplossing hiervoor is om een MD5-hash van welke sleutel die u wilt, en gebruik de hash als uw sleutel in plaats daarvan. Dat is wat we doen in Newcache. Het zorgt niet alleen voor lange sleutels, maar het laat ons ook ook spaties of andere personages in onze sleutel plaatsen. Soms is het nodig om de hele cache te wissen. We kunnen dit doen met behulp van de spoelmechanismen van Memcached, maar soms wordt een cache gedeeld door veel dingen in plaats van slechts één web-app. Het is een schande om alles te laten verliezen zijn verse cache, alleen omdat een web-app nodig is om zijn cache te wissen. Hiervoor introduceren we een eenvoudige techniek genaamd Versioning. Een versienummer wordt toegevoegd aan elke cache-sleutel, en wanneer deze versie wordt verhoogd, worden alle oude cache-toetsen ongeldig omdat ze een onjuiste versie hebben. Dit wordt blootgesteld als een nieuwe instelling, cache_version, en het is standaard tot 1.finaal, We ontdekten dat terwijl we onze site uitsplitsen in ontwikkeling, enscenering en productie, we niet wilden dat ze dezelfde cache delen. Maar we wilden ook geen nieuwe memcached-instantie voor elke exemplaren. Dus we kwamen met het idee om de cache te smaken. Het concept is eenvoudig - voeg een smaak-instelling toe en maak het zoiets als 'dev', 'prod' of 'test'. Met Newcache wordt deze smaakstring toegevoegd aan elke toets, zodat er geen botsingen zijn.Crretely, dit is wat er gebeurt: # cache_version = 2 # smaak = 'Staging'cache.get (' games ') # ... zou Eventueel bel ... Cache.get ('Staging-2-9CFA7AFCCC61936B70AA7AFCCC61936B70AAEC6729329EDA') Het wisselen van de standaardAll van het bovenstaande is eenvoudig de standaardinstelling, u kunt uw eigen callable-functie op elke toets oplopen, door de cache_key_module-instelling te leveren. Het moet een GET_Key-functie opgeven die een geval van Basestring inneemt en een str is uit. Vereisten: · Python · Django


Django-Newcache Gerelateerde software