# JRedisDesktop 基于 Electron + Vue 3 + Vite 的现代 Redis 桌面管理器。 ## 功能特性 ### 连接管理 - 创建、编辑、删除连接(主机/端口/密码) - **SSH 隧道** - 通过 SSH 安全连接 Redis - **Sentinel 模式** - 支持 Redis Sentinel 高可用 - **Cluster 模式** - 支持 Redis Cluster 集群 - **TLS/SSL** - 支持 CA 证书、客户端证书和私钥 - **测试连接** - 保存前验证连接是否成功 - **导入/导出** - JSON 格式连接配置 - **连接颜色** - 为连接设置自定义颜色 - **连接复制** - 一键复制连接配置 - 健康检查 + 自动重连指示器 ### Key 浏览器 - **模式搜索** - 支持 Redis MATCH 语法(如 `user:*`、`cache:??`) - 本地过滤快速搜索 - SCAN 分页加载 - 树形视图(按 key 分隔符分组) - 多选批量操作 - 批量删除(pipeline) - **Key 导入/导出** - 批量导出/导入 key - **内存分析** - 扫描并排序 key 内存占用 ### 类型编辑器 - **String** - 查看/编辑,自动 JSON 格式化 - **Hash** - 字段表格,支持增删改 - **List** - 分页查看,支持推入/编辑/移除 - **Set** - 成员列表,支持过滤/添加/移除 - **Zset** - 有序集合,显示分数 - **Stream** - 流数据查看,字段管理,消费者组支持 - **ReJSON** - RedisJSON 模块支持(JSON.GET / JSON.SET) ### Key 操作 - **TTL** - 查看和编辑过期时间 - **重命名** - 支持存在性检查 - **复制键名** - 一键复制到剪贴板 - 单个/批量删除 - **内存占用** - 查看单个 key 内存占用 ### 分析工具 - **Redis CLI** - 交互式终端,支持命令历史、事务、Pub/Sub、Monitor - **慢日志** - 查看慢命令及耗时 - **INFO 仪表板** - 服务器统计信息 - **命令日志** - 记录所有执行的命令 - **数据库选择器** - 切换 DB 0-15 ### 设置 - **主题** - 深色、浅色、跟随系统 - **语言** - English / 中文 / 日本語 / 한국어 / Deutsch - **SCAN 数量** - 每次扫描的 key 数量 - **字体大小** - 可调节 - **页面缩放** - 50% - 200% - **字体族** - 可选择等宽字体 ### 快捷键 | 快捷键 | 功能 | |--------|------| | `Ctrl+N` | 新建连接 | | `Ctrl+R` | 刷新 key 列表 | | `F5` | 刷新 key 列表 | | `Delete` | 删除选中的 key | | `Escape` | 取消选择 | ## 开发 ```bash npm install npm run dev # electron-vite 开发模式,支持 HMR npm run build # 生产构建 ``` ## 打包 ```bash npm run build:linux npm run build:mac npm run build:win ``` ## 环境要求 - Node.js 18+ - npm 或 yarn - 对于 Linux 构建:可能需要额外的依赖(如 `libsecret-1-dev`) ## 项目结构 ``` JRedisDesktop/ ├── src/ │ ├── main/ # Electron 主进程 │ ├── preload/ # 预加载脚本 │ └── renderer/ # Vue 3 渲染进程 ├── build/ # 构建资源(图标等) ├── out/ # 构建输出 └── release/ # 打包输出 ``` ## 技术栈 - **主进程:** Electron 33 - **预加载:** contextBridge + 类型化 IPC - **渲染进程:** Vue 3 + Pinia + Element Plus - **构建工具:** electron-vite + Vite 6 + TypeScript 5 - **Redis 客户端:** ioredis 5 - **持久化:** electron-store + safeStorage(加密凭据) - **虚拟滚动:** @tanstack/vue-virtual(大数据量渲染) - **代码编辑器:** Monaco Editor(通过 vue-monaco-editor) - **SSH 隧道:** ssh2 ## 架构 ``` Electron 主进程 (src/main/) ├── RedisService # ioredis 封装(连接、扫描、CRUD、Stream) ├── electron-store # 持久化(连接配置、设置) ├── safeStorage # 凭据加密 └── ipc-handlers # 所有 IPC 通道处理 预加载 (src/preload/) └── contextBridge → window.electronAPI 渲染进程 (src/renderer/src/) ├── stores/ # Pinia 状态管理(connection, key, app) ├── components/ # Vue 3 组件 │ ├── layout/ # 应用布局 │ ├── connection/ # 连接管理 │ ├── key/ # Key 浏览 │ ├── editors/ # 类型编辑器 │ ├── common/ # 通用组件(虚拟滚动) │ └── views/ # 视图(CLI、慢日志、内存分析等) ├── i18n/ # 国际化(英文、中文、日语、韩语、德语) └── composables/ # 组合式函数(useKeyboard, useTypeColor) ```