Метод get_many
Метод get_many применяется к объекту кеша и возвращает
словарь, содержащий запрошенные ключи и их значения.
Метод принимает список ключей в качестве аргумента и
возвращает только те ключи, которые существуют в кеше.
Отсутствующие ключи не включаются в результат.
Этот метод позволяет оптимизировать работу с кешем,
уменьшая количество запросов к бекенду кеширования.
Синтаксис
cache.get_many(keys, version=None)
Метод принимает следующие параметры:
keys - список или итерируемый объект с ключами,
значения которых необходимо получить из кеша.
version - необязательный параметр, указывающий
версию ключа для получения.
Пример . Работа с кешем
Давайте установим несколько значений в кеш, а затем
получим их с помощью метода get_many:
from django.core.cache import cache
# Set multiple values in cache
cache.set('user_1', 'Alice', timeout=60)
cache.set('user_2', 'Bob', timeout=60)
cache.set('user_3', 'Charlie', timeout=60)
# Get multiple keys
keys = ['user_1', 'user_2', 'user_3']
res = cache.get_many(keys)
print(res)
Результат выполнения кода:
{'user_1': 'Alice', 'user_2': 'Bob', 'user_3': 'Charlie'}
Пример . С отсутствующими ключами
Если некоторые ключи отсутствуют в кеше, они не будут включены в возвращаемый словарь:
from django.core.cache import cache
# Set only two values
cache.set('product_1', 'Laptop', timeout=60)
cache.set('product_2', 'Mouse', timeout=60)
# Request three keys (one missing)
keys = ['product_1', 'product_2', 'product_3']
res = cache.get_many(keys)
print(res)
Результат выполнения кода:
{'product_1': 'Laptop', 'product_2': 'Mouse'}
Пример . Использование с версионированием
При использовании версионирования метод get_many
позволяет указать версию ключей:
from django.core.cache import cache
# Set values with version
cache.set('article', 'First article', timeout=60, version=1)
cache.set('article', 'Second article', timeout=60, version=2)
# Get keys with version 1
keys = ['article']
res = cache.get_many(keys, version=1)
print(res)
Результат выполнения кода:
{'article': 'First article'}
Пример . Обработка полученных данных
Полученные из кеша данные можно обрабатывать, используя стандартные операции со словарями:
from django.core.cache import cache
# Set data
cache.set('item_1', 100, timeout=60)
cache.set('item_2', 200, timeout=60)
cache.set('item_3', 300, timeout=60)
# Get and process data
keys = ['item_1', 'item_2', 'item_3', 'item_4']
res = cache.get_many(keys)
total = sum(res.values())
print(f"Total: {total}")
Результат выполнения кода:
"Total: 600"
Смотрите также
-
метод
set_many,
который устанавливает несколько ключей в кеш -
метод
get,
который получает значение одного ключа из кеша -
метод
delete_many,
который удаляет несколько ключей из кеша -
метод
get_or_set,
который получает ключ или устанавливает новое значение