10b3e1ec94
- README: complete feature documentation with screenshots-like tables - AGENTS.md: full architecture, IPC channels, component tree, shortcuts
103 lines
2.7 KiB
Markdown
103 lines
2.7 KiB
Markdown
# JRedisDesktop
|
|
|
|
A modern Redis desktop manager built with Electron + Vue 3 + Vite.
|
|
|
|
> Fork of [AnotherRedisDesktopManager](https://github.com/qishibo/AnotherRedisDesktopManager).
|
|
> The legacy Vue 2 codebase is archived in [`legacy/`](legacy/).
|
|
|
|
## Features
|
|
|
|
### Connection Management
|
|
- Create, edit, delete connections with host/port/password
|
|
- TLS/SSL support
|
|
- **Test connection** before saving
|
|
- **Import/Export** connections as JSON
|
|
- Health check with auto-reconnect indicator
|
|
|
|
### Key Browser
|
|
- **Pattern search** with Redis MATCH syntax (e.g. `user:*`, `cache:??`)
|
|
- Local filter for quick search
|
|
- SCAN-based pagination
|
|
- Tree view with key separator
|
|
- Multi-select for batch operations
|
|
- Batch delete with pipeline
|
|
|
|
### Type Editors
|
|
- **String** - view/edit with auto JSON formatting
|
|
- **Hash** - field table with add/edit/delete
|
|
- **List** - paginated view with push/edit/remove
|
|
- **Set** - member list with filter, add/remove
|
|
- **Zset** - sorted set with score, add/remove
|
|
- **Stream** - entry viewer with field management
|
|
|
|
### Key Operations
|
|
- **TTL** - view and edit expiration
|
|
- **Rename** - rename keys with existence check
|
|
- **Copy key name** to clipboard
|
|
- Delete single or batch
|
|
|
|
### Analysis Tools
|
|
- **Redis CLI** - interactive terminal with command history
|
|
- **Slow Log** - view slow commands with timing
|
|
- **INFO dashboard** - server statistics
|
|
- **DB selector** - switch between databases 0-15
|
|
|
|
### Settings
|
|
- **Theme** - dark, light, or system
|
|
- **Language** - English / 中文
|
|
- **SCAN count** - keys per scan iteration
|
|
- **Font size** - adjustable
|
|
|
|
### Keyboard Shortcuts
|
|
| Shortcut | Action |
|
|
|----------|--------|
|
|
| `Ctrl+N` | New connection |
|
|
| `Ctrl+R` | Refresh keys |
|
|
| `F5` | Refresh keys |
|
|
| `Delete` | Delete selected key |
|
|
| `Escape` | Deselect key |
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # electron-vite dev with HMR
|
|
npm run build # production build
|
|
```
|
|
|
|
## Build packages
|
|
|
|
```bash
|
|
npm run build:linux
|
|
npm run build:mac
|
|
npm run build:win
|
|
```
|
|
|
|
## Stack
|
|
|
|
- **Shell:** Electron 33
|
|
- **Preload:** contextBridge + typed IPC
|
|
- **Renderer:** Vue 3 + Pinia + Element Plus
|
|
- **Build:** electron-vite + Vite 6 + TypeScript 5
|
|
- **Redis client:** ioredis 5
|
|
- **Persistence:** electron-store + safeStorage
|
|
|
|
## Architecture
|
|
|
|
```
|
|
Electron main (src/main/)
|
|
├── RedisService (ioredis wrapper)
|
|
├── electron-store (persistence)
|
|
├── safeStorage (credential encryption)
|
|
└── IPC handlers (typed channels)
|
|
|
|
Preload (src/preload/)
|
|
└── contextBridge → window.electronAPI
|
|
|
|
Renderer (src/renderer/src/)
|
|
├── stores/ (Pinia: connection, key, app)
|
|
├── components/ (Vue 3 SFCs)
|
|
├── i18n/ (English + Chinese)
|
|
└── composables/ (useKeyboard)
|
|
```
|