listy-django-cache är en deterministisk caching mekanism för Django projekt. & Nbsp; Det kommer att försöka hålla cachen i synk med databasen genom att uppdatera vid förändringar i stället för att förlita sig på timeout. Som namnet antyder, stöder Listy tittar upp listor över objekt.
Installera
& Nbsp; pip installera listy-django-cache
Användning
Använda Listy är lika enkelt som att ersätta standardmodellen manager med en CachingManager och förse den med listan med nycklar som du kommer att vilja fråga med.
I detta krystat exempel kan jag leta upp baserat på pk, bara anhängare, eller både anhängare och followee:
import listy
klass Följ (models.Model):
& Nbsp; # Konfigurera här cache att stödja lookup med "pk" eller "efterföljare"
& Nbsp; objekt = listy.CachingManager ([("pk"), ("efterföljare",), ("efterföljare", "followee)])
& Nbsp; skapade = models.DateTimeField (auto_now_add = sant)
& Nbsp; anhängare = models.ForeignKey ("Användare", related_name = 'följer')
& Nbsp; followee = models.ForeignKey ("Användare", related_name = "anhängare")
# Följ någon
Follow.cache.add (efterföljare = mig, followee = du)
# Sluta följa någon
Follow.cache.delete (efterföljare = mig, followee = du)
# Få användare jag följer
Follow.cache.get (efterföljare = jag)
# Få om jag följer dig
Follow.cache.get (efterföljare = mig, anhängare = du)
# Få räkningarna för användarna jag följer
från datetime importdatum, timedelta
från dateutil.rrule import rrule, dag, vecka, månad, ÅRSVIS
start, slut = date.today () - timedelta (dagar = 100), date.today ()
Follow.cache.daily_counts (skapad = rrule (DAILY, dtstart = start, fram = slutet))
Du kan se en komplett uppsättning exempel i test_django_app / caching / tests.py.
Argument till CachingManager:
- Cachar - En förteckning över tupler som beskriver de områden som bör vara nycklar till cachen
- Soft_delete_field - namnet på delete fält som kan användas för att ta bort objekt utan att ta bort dem från databasen om denna funktion stöds av modellen (standard Inga)
- Deleted_timestamp_field - namnet på det område som ska vara inställd på en datetime när du tar bort ett objekt (standard Inga)
- Enabled_field - namnet på det område som definierar om ett objekt är aktiverat eller inte, detta behandlas som en ta bort som inte kan göras ogjort under normala omständigheter (standard Inga)
- Timestamp_field - namnet på det fält som håller tidsstämpel som ska användas för räknarna (standard Inga)
- Disable_cache - stäng av caching, kan användas för felsökning (standard False)
- Adress - en funktion som returnerar adressen till memcache (standard 127.0.0.1:11211)
- Filter_out_soft_deletes - behandla mjuka borttagningar som sanna raderar, filtrera bort dem när de återvänder listor (standard sant)
Listan över tupler definieras av cachar argumentet är hjärtat i denna caching mekanism. Genom det definierar vi vad listor av objekt vi vill cachade och uppdaterade, och hur vi kommer att få tillgång till dessa listor
Egenskaper .
- Mycket lätt att använda
- Deterministic
- Snabb tillgång till listor över saker
- Packs data i kompakt form (de flesta små poster går från ungefär 1 k ned till 10s bytes)
- On-demand deserialiseringsundantag
- Användning av memcache s prepend kommando för snabb tillägger
- Håller koll på totalt årligen, månads-, vecko- och dags räknas för varje cachade lista li>
- Tillval per begäran objekt registret
- Valfri stöd för mjuka borttagningar
Krav :
- Python
- Django
Kommentarer hittades inte