Метод get_many

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

Синтаксис

pythoncache.get_many(keys, version=None)

Метод принимает следующие параметры:

keys - список или итерируемый объект с ключами, значения которых необходимо получить из кеша.

version - необязательный параметр, указывающий версию ключа для получения.

Пример . Работа с кешем

Давайте установим несколько значений в кеш, а затем получим их с помощью метода get_many:

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

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

python{'user_1': 'Alice', 'user_2': 'Bob', 'user_3': 'Charlie'}

Пример . С отсутствующими ключами

Если некоторые ключи отсутствуют в кеше, они не будут включены в возвращаемый словарь:

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

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

python{'product_1': 'Laptop', 'product_2': 'Mouse'}

Пример . Использование с версионированием

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

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

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

python{'article': 'First article'}

Пример . Обработка полученных данных

Полученные из кеша данные можно обрабатывать, используя стандартные операции со словарями:

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

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

python"Total: 600"

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

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