Load(); require_once 'cache.php'; header('Content-Type: application/json; charset=utf-8'); header('Access-Control-Allow-Origin: *'); $action = $_GET['action'] ?? 'stats'; $result = array(); switch ($action) { case 'stats': $result = array( 'code' => 200, 'message' => '📊 缓存统计', 'data' => ApiCache::getStats() ); break; case 'clean': $count = ApiCache::cleanExpired(); $result = array( 'code' => 200, 'message' => "🧹 已清理 {$count} 个过期缓存", 'data' => array( 'cleaned' => $count, 'stats' => ApiCache::getStats() ) ); break; case 'clear': $act = $_GET['act'] ?? null; if ($act) { $count = ApiCache::clearByAct($act); $result = array( 'code' => 200, 'message' => "🗑️ 已清除 {$act} 相关的 {$count} 个缓存", 'data' => array( 'act' => $act, 'cleaned' => $count ) ); } else { ApiCache::clear(); $result = array( 'code' => 200, 'message' => '🗑️ 已清除所有缓存', 'data' => ApiCache::getStats() ); } break; case 'config': $result = array( 'code' => 200, 'message' => '⚙️ 缓存配置', 'data' => array( 'ttl_config' => array( 'list' => '180秒 (3分钟)', 'detail' => '300秒 (5分钟)', 'ingredients' => '300秒 (5分钟)', 'ingredient_detail' => '600秒 (10分钟)', 'search' => '120秒 (2分钟)', 'categories' => '600秒 (10分钟)', 'tags' => '600秒 (10分钟)', 'stats' => '60秒 (1分钟)', 'like' => '不缓存', 'recommend' => '不缓存', 'view' => '不缓存' ), 'auto_clean' => '1%概率自动清理过期缓存' ) ); break; default: $result = array( 'code' => 200, 'message' => '🧹 缓存管理接口', 'data' => array( 'actions' => array( 'stats' => '查看缓存统计', 'clean' => '清理过期缓存', 'clear' => '清除所有缓存', 'clear&act=xxx' => '清除指定接口缓存', 'config' => '查看缓存配置' ) ) ); break; } echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); exit;