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
- Джанго
Коментар не знайдено