| import os, redis |
| from dotenv import load_dotenv |
| from src.controller.customlogger import logging |
|
|
| load_dotenv() |
|
|
|
|
| class RedisDataSource: |
| def __init__(self, host='localhost', port=6379, db=0): |
| self.host = os.environ.get("REDIS_HOST") |
| self.username = os.environ.get("REDIS_USERNAME") |
| self.password = os.environ.get("REDIS_PASSWORD") |
| self.port = os.environ.get("REDIS_PORT") |
| self.client = redis.Redis(host=self.host, |
| username=self.username, |
| password=self.password, |
| port=self.port, |
| decode_responses=True) |
|
|
| def read(self, session_id): |
| cache_data = self.client.get(session_id) |
| logging.info(f"Redis Read: session_id={session_id}, found={bool(cache_data)}") |
| return eval(cache_data) if cache_data else {} |
|
|
| def write(self, session_id, data): |
| try: |
| self.client.set(session_id, str(data)) |
| logging.info(f"Redis Write: session_id={session_id}, data_keys={list(data.keys())}") |
| except Exception as e: |
| logging.error(f"Redis Write Error: {e}") |
| print(data) |
|
|
|
|