Метод touch

Метод touch применяется к объекту кэша Django и обновляет время истечения (TTL) для указанного ключа. Если ключ существует, его срок жизни продлевается на переданное количество секунд. Если ключ не существует, метод возвращает False. Это полезно для продления жизни часто используемых данных без необходимости повторной генерации.

Синтаксис

pythoncache.touch(key, timeout=None)

Параметры метода:

python- key: строковый идентификатор ключа в кэше
- timeout: время жизни в секундах (по умолчанию используется значение из настроек CACHES)

Метод возвращает True, если ключ был успешно обновлен, и False, если ключ не существует.

Пример

Давайте установим значение в кэш и затем обновим его время жизни:

pythonfrom django.core.cache import cache

# Устанавливаем значение с таймаутом 60 секунд
cache.set('user_data', {'name': 'John', 'age': 30}, timeout=60)

# Обновляем время жизни ключа на 120 секунд
result = cache.touch('user_data', timeout=120)
print(result)

# Проверяем, что ключ еще существует
data = cache.get('user_data')
print(data)

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

python"True"
"{'name': 'John', 'age': 30}"

Пример

Попробуем обновить время жизни несуществующего ключа:

pythonfrom django.core.cache import cache

# Пытаемся обновить несуществующий ключ
result = cache.touch('non_existent_key', timeout=60)
print(result)

# Проверяем, что ключ не появился
data = cache.get('non_existent_key')
print(data)

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

python"False"
"None"

Пример

Использование метода с таймаутом по умолчанию из настроек:

pythonfrom django.core.cache import cache

# Устанавливаем значение
cache.set('article', 'Django caching tutorial', timeout=30)

# Обновляем время жизни с таймаутом по умолчанию
result = cache.touch('article')
print(result)

# Получаем оставшееся время жизни (если поддерживается бэкендом)
from django.core.cache.backends.base import DEFAULT_TIMEOUT
print("Timeout updated to default")

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

python"True"
"Timeout updated to default"

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

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