import redis from redis.lock import Lock from auth0_block_users import config, constants _redis_client = None def get_redis_client() -> redis.StrictRedis: """Get redis client""" global _redis_client if not _redis_client: _redis_client = redis.StrictRedis(config.REDIS_HOST, config.REDIS_PORT) return _redis_client def get_key(key: str) -> str: """Compose a Redis key. Args: key (str): Key. Returns: str: Complete key constructed by concatenated prefix + key. """ return f'{constants.APP_NAME}/{key}' def get_redis_lock() -> Lock: """Get redis lock""" redis_client = get_redis_client() return redis_client.lock(get_key('lock'), timeout=constants.REDIS_LOCK_TTL)