fix cache

This commit is contained in:
jxxghp
2025-08-21 08:26:32 +08:00
parent c06a4b759c
commit 31cca58943
2 changed files with 24 additions and 17 deletions
+22 -15
View File
@@ -75,11 +75,11 @@ class CacheBackend(ABC):
pass pass
@abstractmethod @abstractmethod
def clear(self, region: Optional[str] = None) -> None: def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
pass pass
@@ -188,11 +188,11 @@ class AsyncCacheBackend(ABC):
pass pass
@abstractmethod @abstractmethod
async def clear(self, region: Optional[str] = None) -> None: async def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
pass pass
@@ -332,11 +332,11 @@ class CacheToolsBackend(CacheBackend):
with lock: with lock:
del region_cache[key] del region_cache[key]
def clear(self, region: Optional[str] = None) -> None: def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
if region: if region:
# 清理指定缓存区 # 清理指定缓存区
@@ -429,15 +429,15 @@ class RedisBackend(CacheBackend):
""" """
self.redis_helper.delete(key, region=region) self.redis_helper.delete(key, region=region)
def clear(self, region: Optional[str] = None) -> None: def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
self.redis_helper.clear(region=region) self.redis_helper.clear(region=region)
def items(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> Generator[Tuple[Any, Any], None, None]: def items(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> Generator[Tuple[str, Any], None, None]:
""" """
获取指定区域的所有缓存项 获取指定区域的所有缓存项
@@ -510,11 +510,11 @@ class AsyncRedisBackend(AsyncCacheBackend):
""" """
await self.redis_helper.delete(key, region=region) await self.redis_helper.delete(key, region=region)
async def clear(self, region: Optional[str] = None) -> None: async def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
await self.redis_helper.clear(region=region) await self.redis_helper.clear(region=region)
@@ -602,11 +602,11 @@ class FileBackend(CacheBackend):
if cache_path.exists(): if cache_path.exists():
cache_path.unlink() cache_path.unlink()
def clear(self, region: Optional[str] = None) -> None: def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
if region: if region:
# 清理指定缓存区 # 清理指定缓存区
@@ -714,11 +714,11 @@ class AsyncFileBackend(AsyncCacheBackend):
if await cache_path.exists(): if await cache_path.exists():
await cache_path.unlink() await cache_path.unlink()
async def clear(self, region: Optional[str] = None) -> None: async def clear(self, region: Optional[str] = DEFAULT_CACHE_REGION) -> None:
""" """
清除指定区域的缓存或全部缓存 清除指定区域的缓存或全部缓存
:param region: 缓存的区 :param region: 缓存的区,为None时清空所有区缓存
""" """
if region: if region:
# 清理指定缓存区 # 清理指定缓存区
@@ -859,6 +859,13 @@ class TTLCache:
logger.warning(f"缓存检查失败: {e}") logger.warning(f"缓存检查失败: {e}")
return False return False
def __iter__(self):
"""
返回缓存的迭代器
"""
for key, _ in self._backend.items():
yield key
def get(self, key: str, default: Any = None): def get(self, key: str, default: Any = None):
""" """
获取缓存项,如果不存在返回默认值 获取缓存项,如果不存在返回默认值
+2 -2
View File
@@ -246,7 +246,7 @@ class RedisHelper(metaclass=Singleton):
except Exception as e: except Exception as e:
logger.error(f"Failed to clear cache, region: {region}, error: {e}") logger.error(f"Failed to clear cache, region: {region}, error: {e}")
def items(self, region: Optional[str] = None) -> Generator[Tuple[Any, Any], None, None]: def items(self, region: Optional[str] = None) -> Generator[Tuple[str, Any], None, None]:
""" """
获取指定区域的所有缓存键值对 获取指定区域的所有缓存键值对
@@ -476,7 +476,7 @@ class AsyncRedisHelper(metaclass=Singleton):
except Exception as e: except Exception as e:
logger.error(f"Failed to clear cache (async), region: {region}, error: {e}") logger.error(f"Failed to clear cache (async), region: {region}, error: {e}")
async def items(self, region: Optional[str] = None) -> AsyncGenerator[Tuple[Any, Any], None]: async def items(self, region: Optional[str] = None) -> AsyncGenerator[Tuple[str, Any], None]:
""" """
获取指定区域的所有缓存键值对 获取指定区域的所有缓存键值对