Листи-Джанго-кеша е детерминирана механизъм за кеширане за проекти Django & Nbsp;. Той ще се опита да запази на кеша в синхронизация с базата данни, като се актуализира по време на промени, вместо да се разчита на кратки прекъсвания. Както се подразбира от името, Листи подкрепя търсите списъци на обекти.
<Силен> Install
& Nbsp; PIP инсталирате Листи-Джанго-кеша
<Силен> Usage
Използването Листи е толкова просто като подмяна на управителя на модел по подразбиране с CachingManager и му предоставя списък на ключове, които ще искат да задава въпроси с.
В този скалъпен Например, мога да погледна нагоре въз основа на РК, просто последовател, или и двете следящия и followee:
внос Листи
клас Follow (models.Model):
& Nbsp; # Configure този кеш за подкрепа за справка с "РК" или "последовател"
& Nbsp; обекти = listy.CachingManager ([("п.к.",), ("последовател",), ("последовател", "followee")])
& Nbsp; създаден = models.DateTimeField (auto_now_add = True)
& Nbsp; последовател = models.ForeignKey ('User', related_name = "следва")
& Nbsp; followee = models.ForeignKey ('User', related_name = 'последователи')
# Следвайте някого
Follow.cache.add (последовател = мен, followee = вас)
# Не следвай някого
Follow.cache.delete (последовател = мен, followee = вас)
# Get потребителите I следват
Follow.cache.get (последовател = мен)
# Get дали мога да следвате
Follow.cache.get (последовател = мен, последовател = вас)
# Get графовете за потребителите I следват
от DateTime дата внос, timedelta
от dateutil.rrule rrule внос, ежедневно, ежеседмично, месечно, годишно
начало, край = date.today () - timedelta (дни = 100), date.today ()
Follow.cache.daily_counts (създаден = rrule (DAILY, dtstart = начало, докато = край))
Можете да видите пълен набор от примери в test_django_app / кеширане / tests.py.
Аргументи за CachingManager:
- Кеш - списък на кортежи, описващи полетата, които трябва да бъдат ключове в кеша
- Soft_delete_field - името на полето за изтриване, която може да се използва за изтриване на обекти, без всъщност да ги извадите от база данни, ако тази функция се поддържа от модел (по подразбиране няма) на
- Deleted_timestamp_field - наименованието на областта, която трябва да се настрои на дата и час, когато изтривате обект (по подразбиране Няма)
- Enabled_field - наименованието на областта, която определя дали даден предмет е активиран или не, това се третира като изтриете, че не може да бъде отменено при нормални обстоятелства (по подразбиране Няма)
- Timestamp_field - наименованието на областта, които държат клеймото да бъде използван за броячите (по подразбиране Няма)
- Disable_cache - изключете кеширане, може да се използва за отстраняване на грешки (по подразбиране False)
- Адрес - функция, която връща адреса на MemCache (по подразбиране 127.0.0.1:11211)
- Filter_out_soft_deletes - лечение на меки изтривания като истински изтривания, да ги филтрират, когато се завръщат списъци (по подразбиране True)
Списъкът на кортежи, определени от довода на кешове е сърцето на този механизъм за кеширане. Чрез него ние определяме какво списъци на обекти Искаме кеширани и актуализирани, и как ние ще получат достъп до тези списъци
<силни> Характеристики :.
- <Ли > Много лесен за използване
- Детерминистични
- Бърз достъп до списъци на нещата
- Опаковки данни в компактна форма (най-малките записи излизат от около 1к до 10s байтове)
- На заявка deserialization
- Използване на прикрепяне команда MemCache за бързо добавя
- Следи от общия, годишни, месечни, седмични и дневни брои за всяка кеширана списъка
- незадължително обект регистър на-заявка
- Допълнителна поддръжка на меки изтривания
<силни> Изисквания
- Python
- Django
Коментари не е намерена