0
0

redis_client.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import redis
  2. import json
  3. from base import Config, logger
  4. class RedisClient:
  5. def __init__(self):
  6. self.logger = logger
  7. try:
  8. self.client = redis.StrictRedis(
  9. host=Config().REDIS_HOST,
  10. port=Config().REDIS_PORT,
  11. password=Config().REDIS_PASSWORD,
  12. db=Config().REDIS_DB,
  13. decode_responses=True
  14. )
  15. self.logger.info("Redis 连接成功")
  16. except redis.RedisError as e:
  17. self.logger.error(f"Redis 连接失败: {e}")
  18. raise
  19. def set_data(self, key, value):
  20. try:
  21. self.client.set(key, json.dumps(value))
  22. self.logger.info(f"存储数据到 Redis: {key}")
  23. except redis.RedisError as e:
  24. self.logger.error(f"Redis 存储失败: {e}")
  25. def get_data(self, key):
  26. try:
  27. data = self.client.get(key)
  28. return json.loads(data) if data else None
  29. except redis.RedisError as e:
  30. self.logger.error(f"Redis 获取失败: {e}")
  31. return None
  32. def get_answer(self, query):
  33. try:
  34. answer = self.client.get(f"answer:{query}")
  35. if answer:
  36. self.logger.info(f"从 Redis 获取答案: {query}")
  37. return answer
  38. return None
  39. except redis.RedisError as e:
  40. self.logger.error(f"Redis 查询失败: {e}")
  41. return None