# 前端移除 Redis 监控适配 Implementation Plan > **For agentic workers:** REQUIRED: Use superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 在不改变前端路由与主要交互的前提下,将缓存监控页面从 Redis 专属视图调整为本地缓存监控视图,并保持缓存列表、键名列表、缓存内容与清理操作可用。 **Architecture:** 前端继续复用现有 `/monitor/cache` API 路径,不引入新的页面或状态管理。调整 `monitor/cache/index.vue` 的展示结构与文案,使其消费后端返回的本地缓存统计字段;`list.vue` 仅保留必要文案和联调适配,避免额外重构。 **Tech Stack:** Vue 2, Element UI, Axios, ECharts, Vue CLI --- ## 文件结构 ### 需要修改 - `ruoyi-ui/src/views/monitor/cache/index.vue` - `ruoyi-ui/src/views/monitor/cache/list.vue` - `ruoyi-ui/src/api/monitor/cache.js` ### 原则 - 不新增前端路由 - 不改接口地址 - 不引入新的前端测试框架 - 文案准确,但保持页面结构尽量稳定 ## Task 1: 调整缓存概览页消费本地缓存字段 **Files:** - Modify: `ruoyi-ui/src/views/monitor/cache/index.vue` - [ ] **Step 1: 先按新接口结构写静态映射草稿** ```js cache: { info: { cache_type: "IN_MEMORY", cache_mode: "single-instance", key_size: 0, hit_count: 0, miss_count: 0, expired_count: 0, write_count: 0 }, dbSize: 0, commandStats: [] } ``` - [ ] **Step 2: 将页面字段从 Redis 专属项改为本地缓存项** 需要替换的展示重点: - `Redis版本` -> `缓存类型` - `运行模式` 保留 - `端口` -> `总键数` - `客户端数` -> `写入次数` - `运行时间(天)` -> `命中次数` - `使用内存` -> `未命中次数` - `使用CPU` -> `过期清理次数` - `内存配置` -> `监控采样时间` 或 `统计说明` - [ ] **Step 3: 调整 ECharts 数据绑定** ```js this.commandstats.setOption({ series: [{ data: response.data.commandStats }] }) ``` 同时将第二张图从 “内存信息” 调整为更适合本地缓存统计的图表,比如“命中/未命中/过期”仪表或柱状图,但不要新增页面复杂度。 - [ ] **Step 4: 保证空数据也能渲染** 要求: - `commandStats` 为空时页面不报错 - `cache.info` 缺字段时不触发 `parseFloat(undefined)` - [ ] **Step 5: 运行生产构建** Run: `npm --prefix ruoyi-ui run build:prod` Expected: `Build complete.` - [ ] **Step 6: 提交本任务** ```bash git add ruoyi-ui/src/views/monitor/cache/index.vue git commit -m "调整前端缓存概览展示" ``` ## Task 2: 复核缓存列表页与接口适配 **Files:** - Modify: `ruoyi-ui/src/views/monitor/cache/list.vue` - Modify: `ruoyi-ui/src/api/monitor/cache.js` - [ ] **Step 1: 确认接口层无需改路径,只做必要注释和兼容梳理** 保持以下 API 不变: ```js getCache() listCacheName() listCacheKey(cacheName) getCacheValue(cacheName, cacheKey) clearCacheName(cacheName) clearCacheKey(cacheKey) clearCacheAll() ``` - [ ] **Step 2: 检查 `list.vue` 是否依赖 Redis 专属文案** 重点确认: - 成功提示文案仍然准确 - `nameFormatter`、`keyFormatter` 继续适配缓存前缀 - 清理全部后是否需要主动清空右侧表单和中间列表 - [ ] **Step 3: 补最小交互修正** 如果后端改为本地缓存后返回空列表,需要补以下保护: ```js this.cacheKeys = response.data || [] this.cacheForm = {} ``` 避免清理后页面残留旧值。 - [ ] **Step 4: 重新运行生产构建** Run: `npm --prefix ruoyi-ui run build:prod` Expected: `Build complete.` - [ ] **Step 5: 提交本任务** ```bash git add ruoyi-ui/src/views/monitor/cache/list.vue ruoyi-ui/src/api/monitor/cache.js git commit -m "完成前端缓存列表适配" ``` ## Task 3: 联调验证与测试进程收尾 **Files:** - Modify: `ruoyi-ui/src/views/monitor/cache/index.vue` - Modify: `ruoyi-ui/src/views/monitor/cache/list.vue` - [ ] **Step 1: 启动前端开发服务联调缓存监控页** Run: `npm --prefix ruoyi-ui run dev` Expected: 本地前端启动成功,可访问缓存监控页面。 - [ ] **Step 2: 联调验证页面** 验证点: - 缓存概览页可打开 - 图表能展示本地缓存统计 - 缓存列表能加载 - 点击缓存名称能加载键名 - 点击键名能查看内容 - 单项清理、按分类清理、全部清理都能成功提示 - [ ] **Step 3: 如需文案微调,仅做最小改动** 禁止扩展: - 不新增入口页面 - 不改路由结构 - 不改全局 store - 不引入测试框架 - [ ] **Step 4: 停止前端测试进程** 要求:联调完成后结束本任务启动的 Node 前端进程,不保留后台测试服务。 - [ ] **Step 5: 提交本任务** ```bash git add ruoyi-ui/src/views/monitor/cache/index.vue ruoyi-ui/src/views/monitor/cache/list.vue git commit -m "完成前端缓存监控联调" ```