From 9f4a7275393ee81de58511d359f72c305aa2a69a Mon Sep 17 00:00:00 2001 From: ManyManyTomato <93612024+ATTomatoo@users.noreply.github.com> Date: Sat, 5 Jul 2025 10:45:59 +0000 Subject: [PATCH] =?UTF-8?q?cache=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/services/cache.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/zhenxun/services/cache.py b/zhenxun/services/cache.py index 21eafa43..a123eb1b 100644 --- a/zhenxun/services/cache.py +++ b/zhenxun/services/cache.py @@ -6,6 +6,7 @@ from typing import Any, ClassVar, Generic, TypeVar import nonebot from aiocache import Cache as AioCache +# from aiocache.backends.redis import RedisCache from aiocache.base import BaseCache from aiocache.serializers import JsonSerializer from nonebot.compat import model_dump @@ -205,7 +206,7 @@ class CacheData(BaseModel): async def get_data(self) -> Any: """从缓存获取数据""" try: - data = await self._cache.get(self.name) #type:ignore + data = await self._cache.get(self.name) logger.debug(f"获取缓存 {self.name} 数据: {data}") # 如果数据为空,尝试重新加载 @@ -304,11 +305,11 @@ class CacheData(BaseModel): logger.debug(f"设置缓存 {self.name} 序列化后数据: {serialized_value}") # 2. 删除旧数据 - await self._cache.delete(self.name) #type:ignore + await self._cache.delete(self.name) logger.debug(f"删除缓存 {self.name} 旧数据") # 3. 设置新数据 - await self._cache.set(self.name, serialized_value, ttl=self.expire) #type:ignore + await self._cache.set(self.name, serialized_value, ttl=self.expire) logger.debug(f"设置缓存 {self.name} 新数据完成") except Exception as e: @@ -318,7 +319,7 @@ class CacheData(BaseModel): async def delete_data(self): """删除缓存数据""" try: - await self._cache.delete(self.name) #type:ignore + await self._cache.delete(self.name) except Exception as e: logger.error(f"删除缓存 {self.name}", e=e) @@ -425,7 +426,7 @@ class CacheData(BaseModel): """ cache_key = self._get_cache_key(key) try: - data = await self._cache.get(cache_key) #type:ignore + data = await self._cache.get(cache_key) logger.debug(f"获取缓存 {cache_key} 数据: {data}") if self.result_model: @@ -464,7 +465,7 @@ class CacheData(BaseModel): for key in self._keys: # 提取原始键名(去掉前缀) original_key = key.split(":", 1)[1] - data = await self._cache.get(key) #type:ignore + data = await self._cache.get(key) if self.result_model: result[original_key] = self._deserialize_value( data, self.result_model @@ -481,7 +482,7 @@ class CacheData(BaseModel): cache_key = self._get_cache_key(key) try: serialized_value = self._serialize_value(value) - await self._cache.set(cache_key, serialized_value, ttl=self.expire) #type:ignore + await self._cache.set(cache_key, serialized_value, ttl=self.expire) self._keys.add(cache_key) # 添加到键列表 logger.debug(f"设置缓存 {cache_key} 数据完成") except Exception as e: @@ -492,7 +493,7 @@ class CacheData(BaseModel): """删除指定键的缓存数据""" cache_key = self._get_cache_key(key) try: - await self._cache.delete(cache_key) #type:ignore + await self._cache.delete(cache_key) self._keys.discard(cache_key) # 从键列表中移除 logger.debug(f"删除缓存 {cache_key} 完成") except Exception as e: @@ -502,7 +503,7 @@ class CacheData(BaseModel): """清除所有缓存数据""" try: for key in list(self._keys): # 使用列表复制避免在迭代时修改 - await self._cache.delete(key) #type:ignore + await self._cache.delete(key) self._keys.clear() logger.debug(f"清除缓存 {self.name} 完成") except Exception as e: @@ -521,7 +522,7 @@ class CacheManager: if self._cache_instance is None: if config.redis_host: self._cache_instance = AioCache( - AioCache.REDIS, # type: ignore + AioCache.REDIS, serializer=JsonSerializer(), namespace="zhenxun_cache", timeout=30, # 操作超时时间 @@ -543,12 +544,12 @@ class CacheManager: async def close(self): if self._cache_instance: - await self._cache_instance.close() #type:ignore + await self._cache_instance.close() async def verify_connection(self): """连接测试""" try: - await self._cache.get("__test__") #type:ignore + await self._cache.get("__test__") except Exception as e: logger.error("连接失败", LOG_COMMAND, e=e) raise @@ -584,7 +585,7 @@ class CacheManager: func=func, expire=expire, lazy_load=lazy_load, - _cache=self._cache, # type: ignore + _cache=self._cache, ) return func @@ -695,4 +696,4 @@ class Cache(Generic[T]): @driver.on_shutdown async def _(): - await CacheRoot.close() + await CacheRoot.close() \ No newline at end of file