listy-django-cache er en deterministisk caching mekanisme for Django prosjekter. & Nbsp; Det vil forsøke å holde cache in-sync med databasen ved å oppdatere under endringer i stedet for å stole på tidsavbrudd. Som antydet ved navn, støtter Listy ser opp lister over gjenstander.
Installer
& Nbsp; pip installere listy-django-cache
Bruk
Bruke Listy er så enkelt som å erstatte standardmodellen manager med en CachingManager og gi det med en liste over nøkler som du vil ønske å søke med.
I dette contrived eksempel kan jeg slå opp basert på pk, bare tilhenger, eller både følger og followee:
import listy
klasse Follow (models.Model):
& Nbsp; # Konfigurer denne cache for å støtte oppslag av "pk" eller "tilhenger"
& Nbsp; gjenstander = listy.CachingManager ([('pk',), ('følger',), ('følger', 'followee')])
& Nbsp; laget = models.DateTimeField (auto_now_add = True)
& Nbsp; følger = models.ForeignKey ('Bruker', related_name = 'følger')
& Nbsp; followee = models.ForeignKey ('Bruker', related_name = 'følgere')
# Følg noen
Follow.cache.add (tilhenger = meg, followee = deg)
# Slutt å følge noen
Follow.cache.delete (tilhenger = meg, followee = deg)
# Få brukerne jeg følger
Follow.cache.get (følger = meg)
# Få om jeg følger deg
Follow.cache.get (tilhenger = meg, følger = deg)
# Få tellingene for brukerne jeg følger
fra datetime import dato, timedelta
fra dateutil.rrule import rrule, daglig, ukentlig, månedlig, årlig
start, end = date.today () - timedelta (dager = 100), date.today ()
Follow.cache.daily_counts (opprettet = rrule (DAILY, dtstart = start, inntil = end))
Du kan se et komplett sett av eksempler i test_django_app / caching / tests.py.
Argumenter til CachingManager:
- Cacher - en liste over tupler beskriver feltene som skal være nøklene inn i cache
- Soft_delete_field - navnet på slette felt som kan brukes til å slette objekter uten faktisk å fjerne dem fra databasen hvis denne funksjonen støttes av modell (standard Ingen)
- Deleted_timestamp_field - navnet på feltet som bør settes til en datetime når du sletter et objekt (standard Ingen)
- Enabled_field - navnet på feltet som definerer om et objekt er aktivert eller ikke, dette er behandlet som en slette som kan ikke omgjøres under normale omstendigheter (standard Ingen)
- Timestamp_field - navnet på feltet som holder tidsstempel som skal brukes til tellerne (standard Ingen)
- Disable_cache - slå av caching, kan brukes for debugging (standard False)
- Adresse - en funksjon som returnerer adressen til Memcache (standard 127.0.0.1:11211)
- Filter_out_soft_deletes - behandle myke sletter som sanne sletter, filtrere dem ut når du returnerer lister (standard sann)
Listen over tupler definert av cacher argument er hjertet av denne caching mekanisme. Gjennom det vi definerer hva lister av objekter vi ønsker bufrede og oppdaterte, og hvordan vi skal få tilgang til disse listene
Egenskaper .
- Veldig enkel å bruke
- Deter
- Rask tilgang til lister over ting
- Packs data i kompakt form (de fleste små poster går fra ca 1k ned til 10s byte)
- On-demand deserialization
- Bruk av Memcache er foranstilte kommando for rask legger
- Holder styr på total, årlig, månedlig, ukentlig og daglig teller for hver bufret liste
- Valgfritt per-forespørsel objekt registret
- Valgfri støtte for myke sletter
Krav
- Python
- Django
Kommentarer ikke funnet