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