Я пишу команду управления django, чтобы обработать часть нашего кэширования redis. По сути, мне нужно выбрать все ключи, которые подтверждают определенный шаблон (например: "prefix: *"), и удалить их.
Я знаю, что могу использовать cli для этого:
redis-cli KEYS "prefix:*" | xargs redis-cli DEL
Но мне нужно сделать это из приложения. Поэтому мне нужно использовать привязку Python (я использую Py-Redis). Я попытался ввести список в удаление, но это не удалось:
from common.redis_client import get_redis_client
cache = get_redis_client()
x = cache.keys('prefix:*')
x == ['prefix:key1','prefix:key2'] # True
# И сейчас
cache.delete(x)
# возвращает 0. ничего не удалено
Я знаю, что могу перебрать x:
for key in x:
cache.delete(key)
Но это может привести к потере скорости и неправильному использованию его возможностей. Есть ли питоническое решение с py-redis, без итерации и/или кли?
Спасибо!