Метод set
Метод set применяется к объекту кэша и сохраняет
значение по указанному ключу. В качестве аргументов
принимает ключ, значение и опциональное время жизни
в секундах. Если ключ уже существует, его значение
будет перезаписано. Метод возвращает True
в случае успешной записи.
Синтаксис
cache.set(key, value, timeout=None, version=None)
Параметры метода:
# key - строковый ключ для доступа к значению
# value - сохраняемое значение (любого типа)
# timeout - время жизни в секундах (по умолчанию None)
# version - версия ключа (опционально)
Пример . Сохранение строки
Сохраним строковое значение в кэш с временем жизни 60 секунд:
from django.core.cache import cache
# Сохраняем строку в кэш
res = cache.set('user_name', 'John Doe', timeout=60)
print(res)
# Получаем значение из кэша
name = cache.get('user_name')
print(name)
Результат выполнения кода:
"True"
"John Doe"
Пример . Сохранение словаря
Сохраним сложный объект (словарь) в кэш без ограничения времени:
from 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)
Результат выполнения кода:
"True"
"{'id': 1, 'name': 'Alice', 'email': 'alice@example.com', 'active': True}"
Пример . Сохранение с версионированием
Используем параметр version для управления версиями кэша:
from 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)
Результат выполнения кода:
"True"
"True"
"First version"
"Second version"
Пример . Перезапись существующего ключа
Метод set автоматически перезаписывает существующие ключи:
from 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)
Результат выполнения кода:
"100"
"200"
Смотрите также
-
метод
get,
который получает значение из кэша по ключу -
метод
add,
который добавляет значение только если ключ отсутствует -
метод
get_or_set,
который получает значение или устанавливает его -
метод
set_many,
который устанавливает несколько значений в кэш