Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import json | |
| from dataclasses import dataclass | |
| import redis | |
| from .config import settings | |
| class Cache: | |
| client: redis.Redis | |
| def get_json(self, key: str) -> dict | None: | |
| try: | |
| v = self.client.get(key) | |
| if v is None: | |
| return None | |
| return json.loads(v) | |
| except redis.RedisError: | |
| return None | |
| def set_json(self, key: str, value: dict, ttl_seconds: int) -> None: | |
| try: | |
| self.client.set(key, json.dumps(value, ensure_ascii=False), ex=ttl_seconds) | |
| except redis.RedisError: | |
| return | |
| def get_cache() -> Cache: | |
| client = redis.Redis.from_url(settings.redis_url, decode_responses=True) | |
| return Cache(client=client) | |