140 lines
4.4 KiB
Markdown
140 lines
4.4 KiB
Markdown
# 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)
|
||
```
|