"""Connector for Redis.""" import json import redis from redis.exceptions import RedisError import sentry_sdk from participant import config if not config.REDIS_ENABLED: import fakeredis client = fakeredis.FakeStrictRedis() else: client = redis.StrictRedis( host=config.REDIS_HOST, port=config.REDIS_PORT, db=0, ssl=config.REDIS_USE_SSL ) def get_value(key: str): """Read a value from Redis.""" try: cached_result = client.get(key) if cached_result: return json.loads(cached_result) except RedisError as err: sentry_sdk.capture_exception(err) return None def set_value(key: str, data): """Write a vale to Redis.""" try: client.set(key, json.dumps(data), ex=config.REDIS_CACHE_TTL) except RedisError as err: sentry_sdk.capture_exception(err)