# 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) ```