Метод clear
Метод clear применяется к объекту кеша и удаляет все
ключи из текущего бэкенда кеширования. Это простой и
эффективный способ полностью очистить кеш, когда необходимо
сбросить все закешированные данные. Метод не принимает
никаких аргументов и не возвращает значения.
Синтаксис
from django.core.cache import cache
cache.clear()
Пример
Давайте очистим весь кеш после добавления нескольких значений:
from django.core.cache import cache
# Добавляем данные в кеш
cache.set("user_1", {"name": "John", "age": 30})
cache.set("user_2", {"name": "Jane", "age": 25})
cache.set("product_100", "Laptop")
# Проверяем, что данные есть
print(cache.get("user_1"))
print(cache.get("product_100"))
# Очищаем весь кеш
cache.clear()
# Проверяем, что данные удалены
print(cache.get("user_1"))
print(cache.get("product_100"))
Результат выполнения кода:
{"name": "John", "age": 30}
"Laptop"
"None"
"None"
Пример
Давайте используем clear для сброса кеша перед
обновлением данных на сайте:
from django.core.cache import cache
from myapp.models import Article
def refresh_cache():
# Очищаем старый кеш
cache.clear()
# Кешируем свежие данные
articles = Article.objects.filter(status="published")
cache.set("published_articles", articles, timeout=3600)
return "Cache refreshed successfully"
Результат выполнения кода:
"Cache refreshed successfully"
Пример
Вот пример работы с clear в контексте управления
сессиями пользователей:
from django.core.cache import cache
from django.contrib.auth.models import User
def clear_user_sessions():
# Сохраняем список активных пользователей перед очисткой
active_users = cache.get("active_users", [])
# Очищаем весь кеш
cache.clear()
# Восстанавливаем данные о пользователях
if active_users:
for user_id in active_users:
user = User.objects.get(id=user_id)
cache.set(f"user_{user_id}", user, timeout=3600)
return "User sessions cleared and restored"
Результат выполнения кода:
"User sessions cleared and restored"
Смотрите также
-
метод
delete,
который удаляет один ключ из кеша -
метод
delete_many,
который удаляет несколько ключей из кеша -
метод
set,
который добавляет значение в кеш -
метод
get,
который получает значение из кеша