Кэширование в Masonite
Masonite предоставляет мощную функцию кэширования любых данных, которые могут быть ненужными или дорогими для извлечения при каждом запросе. Кэширование Masonite позволяет сохранять и извлекать данные, устанавливать время истечения срока действия и управлять различными хранилищами кеша.
Masonite поддерживает следующие драйверы кеша: Redis, Memcached и базовый драйвер File.
В этой документации мы рассмотрим, как настроить и использовать кеш.
Конфигурация
Конфигурация кеша находится в файле config/cache.py
. В этом файле можно указать разные
драйверы в словаре STORES
и значение по умолчанию для использования в вашем приложении
в ключе default
.
По умолчанию Masonite настроен на использование драйвера файлового кэша, ключ local
.
Note
Для высоконагруженных приложений рекомендуется использовать более эффективный драйвер, например
Memcached
или Redis
.
Файловый кэш
Драйвер файлового кэша хранит данные, сохраняя их в файловой системе сервера. Его можно использовать как есть без стороннего сервиса.
Место где Masonite будет хранить файлы данных кеша, по умолчанию storage/framework/cache
,
но его можно изменить с помощью параметра location
.
Redis
Для драйвера кеша Redis требуется пакет Python redis
, который вы можете установить с помощью:
Затем вы должны определить Redis в качестве хранилища по умолчанию и настроить его с параметрами вашего сервера Redis:
config/cache.py | |
---|---|
Memcached
Для драйвера кеша Memcached требуется пакет Python pymemcache
, который вы можете установить с помощью:
Затем вы должны определить Memcached как хранилище по умолчанию и настроить его с параметрами вашего сервера Memcached:
config/cache.py | |
---|---|
Убедитесь, что сервер Memcached запущен и вы готовы начать использовать кеш.
Использование кеша
Вы можете получить доступ к службе Cache через фасад Cache
или разрешив его из
service container.
Хранение данных
Доступны два метода: add
и put
.
add
Вы можете легко добавить данные в кеш, используя метод add
. Это либо извлечет данные, уже находящиеся
в кеше, если срок их действия не истек, либо вставит новое значение.
Если ключ age
существует в кеше и срок его действия не истек, то в кеш будет добавлено и возвращено
значение 21
. Если ключ age
не существует или срок его действия не истек, он вернет все данные,
находящиеся в кеше для этого ключа.
put
Метод put
помещает данные в кеш независимо от того, существует ли он. Это хороший способ перезаписать
данные в кеше:
Вы можете указать количество секунд, в течение которых кэш должен быть действителен. Не указывайте
время или укажите None
, чтобы сохранить данные навсегда.
Вы также можете кэшировать списки и словари, которые сохранят типы данных:
cache.put('user', {"name": "Joe"}, секунды=300) # хранится 5 минут
cache.get("user")['name'] #== "Joe"
Получение данных
Вы можете получить данные из кеша. Если срок действия данных истек, вернет None
или
значение по умолчанию, которое вы укажете:
Это либо извлечет правильные данные age
из кеша, либо вернет значение по умолчанию 40
.
Проверка существования данных
Вы также можете проверить, существует ли значение в кеше и срок его действия не истек:
Удаление данных
Если вы хотите удалить элемент в кеше:
Будет удален этот элемент из кеша.
Увеличение/уменьшение значения
Вы можете увеличивать и уменьшать значение, если оно целое число:
Запоминание
Запоминание — отличный способ сохранить что-то в кеше с помощью вызываемого объекта:
Очистка кеша
Чтобы удалить всё в кеше, вы можете просто сбросить его: