1.cache/news_cache.pyNEWS_DETAIL_PREFIX news:detail: # 读取缓存-新闻详情 key news:detail:新闻id async def get_cached_news_detail(news_id: int) - Optional[Dict[str, Any]]: key f{NEWS_DETAIL_PREFIX}{news_id} return await get_json_cache(key) # 写入缓存-新闻详情 key news:detail:新闻id 新闻数据 过期时间 async def cache_news_detail(news_id: int, news_data: Dict[str, Any], expire: int 300) - bool: key f{NEWS_DETAIL_PREFIX}{news_id} return await set_cache(key, news_data, expire)2. 改造crud/news.py# 获取新闻详情 async def get_news_detail( db: AsyncSession, new_id : int ): # 先尝试从缓存获取新闻详情 cached_detail await get_cached_news_detail(new_id) if cached_detail: return News(**cached_detail) # 查询数据库 stmt select(News).where(News.id new_id) result await db.execute(stmt) news result.scalar_one_or_none() # 写入缓存 if news: news_data jsonable_encoder(news) await cache_news_detail(new_id, news_data) return news