Files

140 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```