|
@@ -6,11 +6,11 @@ import redis
|
|
from typing import Optional, Dict, Any
|
|
from typing import Optional, Dict, Any
|
|
|
|
|
|
class CacheService:
|
|
class CacheService:
|
|
- def __init__(self, host: str = 'localhost', port: int = 6379,
|
|
|
|
- db: int = 0, password: str = None, ttl: int = 2592000):
|
|
|
|
|
|
+ def __init__(self, host: str = '192.168.50.233', port: int = 6379,
|
|
|
|
+ db: int = 10, password: int = 123456, ttl: Optional[int] = None):
|
|
"""
|
|
"""
|
|
初始化Redis缓存服务
|
|
初始化Redis缓存服务
|
|
- :param ttl: 默认缓存时间(秒),默认24小时
|
|
|
|
|
|
+ :param ttl: 默认缓存时间(秒)
|
|
"""
|
|
"""
|
|
self.client = redis.Redis(
|
|
self.client = redis.Redis(
|
|
host=host,
|
|
host=host,
|
|
@@ -47,26 +47,32 @@ class CacheService:
|
|
self.logger.error(f"获取缓存失败: {str(e)}")
|
|
self.logger.error(f"获取缓存失败: {str(e)}")
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
+
|
|
def set_cached_response(self, request_body: Dict[str, Any],
|
|
def set_cached_response(self, request_body: Dict[str, Any],
|
|
- response_data: Dict[str, Any],
|
|
|
|
- ttl: int = None) -> bool:
|
|
|
|
|
|
+ response_data: Dict[str, Any],
|
|
|
|
+ ttl: Optional[int] = None) -> bool:
|
|
"""
|
|
"""
|
|
设置缓存结果
|
|
设置缓存结果
|
|
|
|
+ :param ttl: 如果为 None 或 0,则永久缓存
|
|
"""
|
|
"""
|
|
cache_key = self._generate_cache_key(request_body)
|
|
cache_key = self._generate_cache_key(request_body)
|
|
try:
|
|
try:
|
|
expire_time = ttl if ttl is not None else self.ttl
|
|
expire_time = ttl if ttl is not None else self.ttl
|
|
- self.client.setex(
|
|
|
|
- cache_key,
|
|
|
|
- expire_time,
|
|
|
|
- json.dumps(response_data)
|
|
|
|
- )
|
|
|
|
- self.logger.info(f"缓存已设置: {cache_key} (TTL: {expire_time}s)")
|
|
|
|
|
|
+
|
|
|
|
+ if expire_time is None or expire_time <= 0:
|
|
|
|
+ # 永久缓存
|
|
|
|
+ self.client.set(cache_key, json.dumps(response_data))
|
|
|
|
+ self.logger.info(f"缓存已设置(永久): {cache_key}")
|
|
|
|
+ else:
|
|
|
|
+ # 带过期时间的缓存
|
|
|
|
+ self.client.setex(cache_key, expire_time, json.dumps(response_data))
|
|
|
|
+ self.logger.info(f"缓存已设置(TTL: {expire_time}s): {cache_key}")
|
|
|
|
+
|
|
return True
|
|
return True
|
|
except Exception as e:
|
|
except Exception as e:
|
|
self.logger.error(f"设置缓存失败: {str(e)}")
|
|
self.logger.error(f"设置缓存失败: {str(e)}")
|
|
return False
|
|
return False
|
|
-
|
|
|
|
|
|
+
|
|
def clear_cache(self, request_body: Dict[str, Any]) -> bool:
|
|
def clear_cache(self, request_body: Dict[str, Any]) -> bool:
|
|
"""清除指定请求的缓存"""
|
|
"""清除指定请求的缓存"""
|
|
cache_key = self._generate_cache_key(request_body)
|
|
cache_key = self._generate_cache_key(request_body)
|