# mg-redis-manager **Repository Path**: ibdp/mg-redis-manager ## Basic Information - **Project Name**: mg-redis-manager - **Description**: 一个开源的redis管理客户端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis Manager 跨平台(Windows / Linux)Redis 可视化管理客户端,采用 **Electron + ioredis** 实现:主进程负责连接与数据操作,渲染进程为原生 HTML/CSS/JS(无前端框架依赖),通过 `contextBridge` + IPC 通信。 单实例可管理多个 Redis 服务,支持连接管理、库/键浏览、键值增删改、检索、以及 native2ascii / JSON 等数据查看工具。 --- ## 一、功能清单 ### 连接管理 - 新增 / 编辑 / 删除 / 连接 / 重新连接 / 断开 - 支持主机、端口、用户名、密码、默认 DB、TLS、连接超时(秒) - 连接状态实时展示(已连接 / 连接中 / 异常 / 未连接),自动广播到界面 - 配置本地持久化(JSON),首个连接写入即用 ### 数据浏览 - 数据库列表:`CONFIG GET databases` + `INFO keyspace`,展示每个 DB 的 key 数量 - Key 列表:基于 `SCAN` 游标分页,不阻塞服务端 - 检索:glob 模式(如 `user:*`)+ 类型过滤(string / list / hash / set / zset / stream) - 批量选择删除、清空当前 DB(二次确认) - 服务器信息查看(`INFO`)、底部内置 Redis CLI(任意命令执行,带耗时) ### Key 详情与编辑 | 类型 | 查看 | 编辑能力 | |---|---|---| | string | 全文预览(>512KB 自动截断,避免阻塞) | 保存值、同时保留 TTL | | list | 索引分页 | 按索引改值、左/右 PUSH、按值删除元素 | | hash | 字段游标分页 + 字段 glob 过滤 | 新增字段、改值、删除字段 | | set | 成员游标分页 | 新增成员、改成员、删除成员 | | zset | 成员 + 分值分页 | 新增成员、改分值/成员、删除成员 | | stream | 前 N 条条目(只读) | — | - Key 级操作:重命名、设置/持久化 TTL、删除、复制 Key 名 - 二进制安全:Key 与 Value 统一按 Buffer 处理,不可打印字符显示为 `\xNN`,编辑按 UTF-8 写回 ### 工具箱 - **native2ascii**:`\uXXXX` 解码为中文;反向可将中文转义为 Java properties 形式(含代理对) - **JSON**:格式化(2 空格缩进)/ 压缩,自动报错提示 - **Base64**:双向自动识别编解码 - **URL**:`encodeURIComponent` / `decodeURIComponent` 双向自动识别 - **Hex / 文本**:十六进制与文本互转 - 值查看处可一键把内容送入工具箱处理 --- ## 二、目录结构 ``` redis-manager/ ├── src/ │ ├── main/ 主进程(Node 环境) │ │ ├── main.js 应用入口、窗口创建、--smoke 自测、调试日志 │ │ ├── preload.js contextBridge 暴露给渲染层的安全 API │ │ ├── ipc.js 所有 IPC 通道注册与错误包装 │ │ ├── redis-service.js Redis 连接管理 + 全部读写操作(核心) │ │ └── connection-store.js 连接配置持久化(userData/connections.json) │ └── renderer/ 渲染层(纯前端,无框架) │ ├── index.html 界面骨架(连接栏/工具栏/Key 列表/详情/CLI) │ ├── styles.css 深色主题样式 │ └── app.js 界面逻辑(IIFE 包裹,避免与 window.api 冲突) ├── scripts/ │ └── make-icon.js 纯 Node 生成 icon.png / icon.ico(无第三方依赖) ├── build/ 图标资源(icon.png 256×256、icon.ico) ├── dist/ 构建产物(nsis 安装包 / portable / win-unpacked) ├── package.json └── README.md ``` --- ## 三、快速开始 ```bash npm install # 安装依赖(electron + ioredis + electron-builder) npm start # 启动应用 npm start -- --dev # 启动并打开 DevTools ``` 国内网络建议先设置镜像(Windows PowerShell): ```powershell $env:ELECTRON_MIRROR = 'https://npmmirror.com/mirrors/electron/' $env:ELECTRON_BUILDER_BINARIES_MIRROR = 'https://npmmirror.com/mirrors/electron-builder-binaries/' ``` 若 `node_modules/electron` 报 `Electron failed to install correctly`,进入 `node_modules/electron` 手动执行 `node install.js` 补下载二进制即可。 --- ## 四、打包 | 平台 | 命令 | 产物 | |---|---|---| | Windows | `npm run dist` | `dist/RedisManager-1.0.0-win-x64.exe`(NSIS 安装包,含桌面/开始菜单快捷方式与卸载程序)
`dist/RedisManager-1.0.0-portable.exe`(免安装便携版) | | Linux | `npm run dist:linux` | `dist/RedisManager-1.0.0-x86_64.AppImage`、`dist/redis-manager_1.0.0_amd64.deb`(需 `fpm` 环境) | | 仅目录版 | `npm run pack` | `dist/win-unpacked/` | 构建配置全部位于 `package.json` 的 `build` 字段(appId、图标、nsis 中文安装界面、asar 压缩等)。 --- ## 五、自动化验证(--smoke) 打包后无需人工点击即可验证核心链路: ```bash RedisManager-1.0.0-portable.exe --smoke # 或已安装版 RedisManager.exe --smoke ``` 行为:连接 `192.168.32.60:6379`(先用密码 `123456`,失败自动回退无密码)→ 执行 `PING / SET / GET / TYPE / TTL / DEL / SCAN / CONFIG GET databases / HGETALL` → 离屏加载渲染层校验 preload 与默认连接渲染 → 写日志并自动退出(退出码 0 成功)。 日志位置:`%APPDATA%\RedisManager\smoke.log`(Linux 为 `~/.config` 同级规则下由 `APPDATA` 未定义时落到工作目录),同时输出 `debug.log` 供排查界面问题。 实测结果(Windows 安装版): ``` PING -> PONG connected via with-password SET -> OK; GET -> hello-…; TYPE -> string; TTL -> -1s DEL -> 1 SCAN cursor=24 returned=5 -> SysConfig::ConfigServiceImpl:getConfigValue(...) databases = 16 HGETALL __smoke_hash__ = {"field1":"v1"} UI smoke -> PASS probe: api=object, 默认连接渲染 1 项, toolbar 就绪 ``` --- ## 六、数据存储 - 连接配置:Electron `userData/connections.json`(Windows:`%APPDATA%\redis-manager\connections.json`) - 首次运行若配置文件不存在,会自动写入默认测试连接:`192.168.32.60:6379`,密码 `123456` - 密码以明文存储在本机配置中,属于本地工具类约定;删除连接后不会再自动重建 --- ## 七、使用提示 1. 左侧点击连接 → 点「连接」;已连接时按钮变为「重新」 2. 顶部选择 DB → 输入 glob(如 `user:*`)→ 检索/刷新 3. 点击 Key 名或「查看」打开右侧详情面板 4. string 值可直接编辑保存;list/hash/set/zset 在表格行内编辑或新增 5. 值内容含 `\uXXXX` 或 JSON 时,点「解码 / JSON 格式化 / 到工具箱」 6. 底部命令行可执行任意 Redis 命令(如 `keys user:*`、`get name`) --- ## 八、已知限制 - 单机模式为主,暂不支持 Cluster / Sentinel 拓扑展示 - stream 类型仅提供只读预览(前 N 条),不支持 XADD/XDEL - 无 `CONFIG` 权限时,DB 数量回退取 `INFO keyspace`,最多按 16 展示 - 大 key(>512KB 的 string、超大 hash/set)采用分页/截断策略加载,避免阻塞主线程 - 渲染层脚本必须以 IIFE 包裹:顶层 `const api` 会与 preload 注入的 `window.api` 冲突并导致脚本加载失败