import logging from flask import current_app from redis import Redis, exceptions from src.config import REDIS_HOSTS def init_redis(host_env): return Redis(host=host_env, socket_timeout=1) def invalidate_cache_by_pattern(redis_client: Redis, pattern: str): try: for key in redis_client.scan_iter(pattern, count=1000): current_app.logger.info(f"{key} - invalidated", redis_client.delete(key)) except exceptions.TimeoutError as ex: log = logging.getLogger("flask-admin.redis") log.exception(ex) redis_clients = {} for name, host in REDIS_HOSTS.items(): redis_clients[name] = init_redis(host)