Метод clear

Метод clear применяется к объекту кеша и удаляет все ключи из текущего бэкенда кеширования. Это простой и эффективный способ полностью очистить кеш, когда необходимо сбросить все закешированные данные. Метод не принимает никаких аргументов и не возвращает значения.

Синтаксис

pythonfrom django.core.cache import cache

cache.clear()

Пример

Давайте очистим весь кеш после добавления нескольких значений:

pythonfrom 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"))

Результат выполнения кода:

python{"name": "John", "age": 30}
"Laptop"
"None"
"None"

Пример

Давайте используем clear для сброса кеша перед обновлением данных на сайте:

pythonfrom 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"

Результат выполнения кода:

python"Cache refreshed successfully"

Пример

Вот пример работы с clear в контексте управления сессиями пользователей:

pythonfrom 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"

Результат выполнения кода:

python"User sessions cleared and restored"

Смотрите также

  • метод delete,
    который удаляет один ключ из кеша
  • метод delete_many,
    который удаляет несколько ключей из кеша
  • метод set,
    который добавляет значение в кеш
  • метод get,
    который получает значение из кеша