РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
674 of 818 menu

Метод 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,
    который получает ключ или устанавливает новое значение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить