Метод set

Метод set применяется к объекту кэша и сохраняет значение по указанному ключу. В качестве аргументов принимает ключ, значение и опциональное время жизни в секундах. Если ключ уже существует, его значение будет перезаписано. Метод возвращает True в случае успешной записи.

Синтаксис

pythoncache.set(key, value, timeout=None, version=None)

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

python# key - строковый ключ для доступа к значению
# value - сохраняемое значение (любого типа)
# timeout - время жизни в секундах (по умолчанию None)
# version - версия ключа (опционально)

Пример . Сохранение строки

Сохраним строковое значение в кэш с временем жизни 60 секунд:

pythonfrom django.core.cache import cache

# Сохраняем строку в кэш
res = cache.set('user_name', 'John Doe', timeout=60)
print(res)

# Получаем значение из кэша
name = cache.get('user_name')
print(name)

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

python"True"
"John Doe"

Пример . Сохранение словаря

Сохраним сложный объект (словарь) в кэш без ограничения времени:

pythonfrom django.core.cache import cache

# Сохраняем словарь в кэш
user_data = {
  'id': 1,
  'name': 'Alice',
  'email': 'alice@example.com',
  'active': True
}
res = cache.set('user_data', user_data)
print(res)

# Получаем данные из кэша
data = cache.get('user_data')
print(data)

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

python"True"
"{'id': 1, 'name': 'Alice', 'email': 'alice@example.com', 'active': True}"

Пример . Сохранение с версионированием

Используем параметр version для управления версиями кэша:

pythonfrom django.core.cache import cache

# Сохраняем значение с версией 1
res = cache.set('article', 'First version', timeout=300, version=1)
print(res)

# Сохраняем значение с версией 2
res = cache.set('article', 'Second version', timeout=300, version=2)
print(res)

# Получаем значения разных версий
article_v1 = cache.get('article', version=1)
article_v2 = cache.get('article', version=2)
print(article_v1)
print(article_v2)

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

python"True"
"True"
"First version"
"Second version"

Пример . Перезапись существующего ключа

Метод set автоматически перезаписывает существующие ключи:

pythonfrom django.core.cache import cache

# Первоначальное значение
cache.set('counter', 100, timeout=120)
old_value = cache.get('counter')
print(old_value)

# Перезаписываем новым значением
cache.set('counter', 200, timeout=120)
new_value = cache.get('counter')
print(new_value)

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

python"100"
"200"

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

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