Wish-Django-cache er en deterministisk caching mekanisme til Django-projekter. & Nbsp; Det vil forsøge at holde cachen in-sync med databasen ved at opdatere under ændringer i stedet for at stole på timeouts. Som det fremgår af navnet, Wish understøtter kigge lister over objekter.
Installer
& Nbsp; pip installere Wish-Django-cache
Anvendelse
Brug af Wish er så simpelt som at erstatte standard model manager med en CachingManager og forsyne det med en liste over de nøgler, som du gerne vil forespørge med.
I dette konstruerede eksempel kan jeg se op baseret på pk, bare tilhænger eller både follower og followee:
import listy
klasse Follow (models.Model):
& Nbsp; # Konfigurer denne cache til at understøtte opslag med "pk" eller "follower"
& Nbsp; objekter = listy.CachingManager ([("pk",), ('follower ",), (' follower ',' followee ')])
& Nbsp; skabt = models.DateTimeField (auto_now_add = True)
& Nbsp; follower = models.ForeignKey ('Bruger', related_name = 'følger')
& Nbsp; followee = models.ForeignKey ('Bruger', related_name = 'followers')
# Følg person
Follow.cache.add (follower = mig, followee = dig)
# Følg ikke længere nogen
Follow.cache.delete (follower = mig, followee = dig)
# Få brugerne jeg følger
Follow.cache.get (follower = mig)
# Få, om jeg følge dig
Follow.cache.get (follower = mig, follower = dig)
# Få tæller for brugerne, jeg følger
fra datetime import dato timedelta
fra dateutil.rrule import rrule, dagligt, ugentligt, månedligt, ÅRLIG
starte, ende = date.today () - timedelta (dage = 100), date.today ()
Follow.cache.daily_counts (oprettet = rrule (DAILY, dtstart = start, indtil = ende))
Du kan se en komplet sæt af eksempler i test_django_app / caching / tests.py.
Argumenter til CachingManager:
- Caches - en liste over tupler der beskriver de felter, der skal være nøglerne i cachen
- Soft_delete_field - navnet på delete felt, der kan bruges til at slette objekter uden faktisk at fjerne dem fra databasen, hvis denne funktion understøttes af modellen (standard Ingen)
- Deleted_timestamp_field - navnet på feltet, der skal indstilles til en datetime når du sletter et objekt (standard Ingen)
- Enabled_field - navnet på feltet, der definerer, om en genstand er aktiveret eller ej, det er behandlet som en slette, der ikke kan fortrydes under normale omstændigheder (standard Ingen)
- Timestamp_field - navnet på det felt, holder tidsstempel skal bruges til tællerne (default Ingen)
- Disable_cache - sluk caching, kan bruges til fejlfinding (standard False)
- Adresse - en funktion, der returnerer adressen på memcache (standard 127.0.0.1:11211)
- Filter_out_soft_deletes - behandle bløde sletter som sande sletter, filtrere dem ud, når returnering lister (standard sand)
Listen over tupler defineret af caches argument er hjertet af denne caching mekanisme. Gennem det vi definerer, hvad der lister af objekter, vi ønsker cache og opdaterede, og hvordan vi vil få adgang disse lister
Funktioner :.
- Meget let at bruge
- Deterministiske
- Hurtig adgang til lister over ting
- Packs data i kompakt form (de fleste små optegnelser går fra omkring 1k ned til 10s af bytes)
- On-demand deserialization
- Anvendelse af memcache s prepend kommando til hurtig tilføjer
- Holder styr på alt, årlige, månedlige, ugentlige og daglige tæller for hver cached liste
- Valgfri pr-request objekt registreringsdatabasen
- Valgfri støtte til bløde sletter
Krav :
- Python
- Django
Kommentarer ikke fundet