Как получить все элементы по тегу? - PullRequest
0 голосов
/ 04 февраля 2020

Я использую diskcache , чтобы сохранить мои данные. Я сохраняю пользователей cache.add(key=k, value=v, tag="users"), теперь я хочу получить всех пользователей tag, но такого метода не существует.

Как я могу это сделать?

Я нашел только один способ сделать это:

def _get_all(self):
    r = []
    for k in list(self._cache.iterkeys()):
        r.append(self._cache.get(key=k))

Но этот способ не принимает тег в качестве аргумента, поэтому я невозможно сохранить в 1 экземпляре дискового кэша разные элементы и отфильтровать их по тегу.

1 Ответ

1 голос
/ 04 февраля 2020

Глядя на исходный код python -diskcache , единственная цель тега - использовать в индексе SQLite , который предназначен для включения быстрого кэша выселение / отбраковка на основе значения тега.

Единственный оператор SQL, в котором когда-либо использовался tag, находится в методе .evict().

Существует нет официального API для получения записей кэша по тегам, и библиотека не предназначена для этого. Вся базовая настройка базы данных и механики поиска предметов сосредоточены на ключах.

...