Listy-django-cache ay isang deterministic caching mekanismo para sa Django proyekto. & Nbsp; Ito ang pagtatangka upang panatilihin ang cache in-sync sa mga database sa pamamagitan ng pag-update sa panahon ng pagbabago halip na umasa sa timeout. Tulad ng ipinapahiwatig ng pangalan, Listy sumusuporta naghahanap up ng mga listahan ng mga bagay.
I-install ang
& Nbsp; pip install Listy-django-cache
Usage
Paggamit Listy ay simpleng bilang pagpapalit ng default model manager sa isang CachingManager at pagbibigay ito sa mga listahan ng mga susi na ikaw ay nais na query sa.
Sa ganitong contrived halimbawa, maaari kong tumingin up batay sa pk, lamang sa mga tagasunod, o pareho ng mga tagasunod at followee:
import Listy
klase Follow (models.Model):
& Nbsp; # I-configure ang cache upang suportahan lookup sa pamamagitan ng 'pk' o 'tagasunod'
& Nbsp; mga bagay = listy.CachingManager ([('pk',), ('tagasunod',), ('tagasunod', 'followee')])
& Nbsp; na nilikha = models.DateTimeField (auto_now_add = True)
& Nbsp; tagasunod = models.ForeignKey ('User', related_name = 'sumusunod')
& Nbsp; followee = models.ForeignKey ('User', related_name = 'tagasunod')
# Sundin ang isang tao
Follow.cache.add (kapanalig = ako, followee = inyo)
# I-unfollow ang isang tao
Follow.cache.delete (kapanalig = ako, followee = inyo)
# Kumuha ng mga gumagamit sundin ko
Follow.cache.get (kapanalig = me)
# Kunin kung sundin ko sa iyo
Follow.cache.get (kapanalig = akin, lingkod = inyo)
# Kunin ang binibilang para sa mga gumagamit na sundin ko
mula datetime date import, timedelta
mula dateutil.rrule rrule import, araw-araw, lingguhan, buwanan, TAUNANG
magsimula, end = date.today () - timedelta (araw = 100), date.today ()
Follow.cache.daily_counts (nilikha = rrule (araw-araw, dtstart = magsimula, hanggang = end))
Maaari mong makita ang isang kumpletong hanay ng mga halimbawa sa test_django_app / caching / tests.py.
Pangangatwiran sa CachingManager:
- Cache - isang listahan ng tuples naglalarawan ang mga patlang na ay dapat na keys sa cache
- Soft_delete_field - ang pangalan ng delete field na maaaring magamit upang tanggalin bagay na walang tunay na ang mga ito sa pag-alis mula sa mga database kung ang tampok na ito ay suportado ng mga modelo (default Wala)
- Deleted_timestamp_field - ang pangalan ng patlang na kung saan ay dapat na itakda sa isang datetime kapag nagtatanggal ng isang bagay (default Wala)
- Enabled_field - ang pangalan ng patlang na tumutukoy kung ang isang bagay ay pinagana o hindi, ito ay itinuturing na tulad ng isang tanggalin na hindi maaaring bawiin sa ilalim ng normal na pangyayari (default Wala)
- Timestamp_field - ang pangalan ng patlang na hawakan ang timestamp na gagamitin para sa mga counter (default Wala)
- Disable_cache - turn off caching, ay maaaring gamitin para sa debugging (default Mali)
- Address - isang function na nagbabalik ang address ng memcache (default 127.0.0.1:11211)
- Filter_out_soft_deletes - gamutin soft pagtanggal bilang tunay na magbubura, salain ang mga ito out kapag bumabalik lists (default True)
Ang listahan ng mga tuples tinukoy sa pamamagitan ng mga cache argument ay ang puso ng caching mekanismo na ito. Sa pamamagitan nito tukuyin natin kung ano ang mga listahan ng mga bagay na namin nais na naka-cache at na-update, at kung paano namin ma-access ang mga listahan
Features .
- Napakadaling gamitin
- Deterministic
- Mabilis na access sa mga listahan ng mga bagay-bagay
- pack data sa compact form (pinaka-maliit na mga talaan pumunta mula sa tungkol sa 1k pababa sa 10s ng bytes)
- On-demand deserialization
- Gumamit ng prepend utos memcache para mabilis nagdadagdag
- Sinusubaybayan ng kabuuang, taon-taon, buwanan, lingguhan, at araw-araw na bilang para sa bawat listahan ng mga naka-cached
- Opsyonal per-request object registry
- Opsyonal na suporta para sa soft magbubura
Kinakailangan :
- sawa
- Django
Mga Komento hindi natagpuan