94 lines
3.9 KiB
Markdown
94 lines
3.9 KiB
Markdown
Redis 连接使用专用表单(redis)。连上后,对象树是键空间浏览器,编辑器是 Redis 命令行 —— **和 SQL 共用同一套输入框**,不另开 CLI 页。
|
||
|
||
## 为什么命令行不单独做一套
|
||
|
||
SQL 工作台已经有:多 Tab、⌘/Ctrl+Enter、查询历史、书签、危险确认、取消。Redis 命令同样是「输入 → 执行 → 结果表」。
|
||
|
||
拆成独立 CLI(终端 REPL)会让快捷键、历史、危险确认分叉,也和 Navicat 式多引擎工作台不一致。
|
||
|
||
因此:
|
||
|
||
| | SQL | Redis |
|
||
| --- | --- | --- |
|
||
| 输入框 | 同一 CodeMirror | 同一 CodeMirror(占位/补全换成命令) |
|
||
| 切分 | 分号语句 | **按行**(`SET k "a;b"` 不会被分号拆开) |
|
||
| 执行 | ⌘/Ctrl+Enter 当前语句或选区 | ⌘/Ctrl+Enter 当前行或选区 |
|
||
| 结果 | 结果表 | 命令结果表;从对象树打开键则进入键详情 |
|
||
|
||
Another Redis Desktop Manager 的独立 CLI Tab、opsxsql 的单行命令 + 输出日志,列为后续 P1,不是现在的主路径。
|
||
|
||
## 键空间浏览
|
||
|
||
对象树对 Redis 显示 DB0–15(Cluster 仅 0)。展开库后:
|
||
|
||
- **SCAN 过滤**:输入 `user:*` 点「应用」;生产大库请带前缀,避免扫全库。最多展示 500 个键,超出提示截断。
|
||
- **按分隔符编文件夹**:连接表单的「键分隔符」默认 `:`,`CEX:FOLLOW:FOLLOWERS:1` 显示为 `CEX / FOLLOW / FOLLOWERS / 1`。文件夹显示数量;右键可「只看此前缀」「在此新建键」。
|
||
- **类型色点**:string 绿 / hash 蓝 / list 橙 / set 紫 / zset 青。
|
||
- **点键**:打开键详情(不是假 SELECT)。
|
||
|
||
## 键详情
|
||
|
||
对标 Another Redis Desktop Manager 的 Hash/List/Set 视图:
|
||
|
||
- 类型徽章、键名(回车重命名)、TTL(回车或「保存 TTL」,`-1` 永久)、刷新、导出还原命令、删除;
|
||
- **结构**表:Hash 为 ID / Field / Value,JSON 值自动美化;可新增字段、编辑、删除;
|
||
- **JSON** 视图:整体格式化;
|
||
- 表内关键字过滤。
|
||
|
||
String 可直接改值保存。
|
||
|
||
## 命令执行
|
||
|
||
编辑器直接写 Redis 命令:
|
||
|
||
```bash
|
||
PING
|
||
SET demo:key "hello" EX 60
|
||
GET demo:key
|
||
HGETALL demo:hash
|
||
SCAN 0 MATCH demo:* COUNT 100
|
||
INFO memory
|
||
```
|
||
|
||
- 未点名的命令走通用 `Do`(`EXISTS` / `ECHO` / `INFO` / `CLIENT LIST` 等不必再加白名单);
|
||
- `FLUSHALL` / `FLUSHDB` / `KEYS` / `CONFIG` 仍要二段确认;
|
||
- `KEYS *` 在大库上会阻塞 —— 请用 `SCAN MATCH`。
|
||
|
||
### 切换逻辑库(SELECT)
|
||
|
||
`SELECT 1` 是 Redis 官方的切库命令,编辑器直接支持 —— 语义与 redis-cli 一致:**切换后本 Tab 的后续命令都在目标库执行**:
|
||
|
||
```bash
|
||
SELECT 1
|
||
GET db1:only:key # 在 db1 执行
|
||
```
|
||
|
||
- 没有也没有 `USE`(那是 SQL 语法)—— 输入 `USE db1` 会得到 Redis 原生报错
|
||
`ERR unknown command 'USE'`,与 redis-cli 行为一致;
|
||
- 切库只影响当前查询 Tab(多 Tab 可各连各的库),左侧对象树点开对应库可浏览键;
|
||
- Cluster 模式只有 DB 0,`SELECT` 无效。
|
||
|
||
## 连接参数
|
||
|
||
| 字段 | 说明 |
|
||
| --- | --- |
|
||
| host / port | 单机默认 127.0.0.1:6379 |
|
||
| password / user | ACL / requirepass |
|
||
| database | 逻辑库序号(0–15 常见;Cluster 忽略) |
|
||
| 键分隔符 | 对象树文件夹分隔,默认 `:` |
|
||
| ssl | TLS |
|
||
| redisMode | `standalone`(默认)/ `sentinel` / `cluster` |
|
||
| redisNodes | Sentinel / Cluster 节点列表,`host:port` 多行或逗号分隔 |
|
||
| masterName | Sentinel 主节点名(必填) |
|
||
| sentinelPassword | Sentinel 密码(可空) |
|
||
|
||
### Sentinel
|
||
|
||
模式选「哨兵」,填写至少一个 Sentinel 地址和 `masterName`(如 `mymaster`)。逻辑库序号仍可用。
|
||
|
||
### Cluster
|
||
|
||
模式选「集群」,填写至少一个种子节点。Cluster 不支持 `SELECT` 多库,对象树只暴露 DB 0。槽位路由由客户端处理,键浏览走 `SCAN`。
|
||
|
||
> **环境**:Sentinel / Cluster 表单与后端已接好;真实拓扑联调见 `docs/BACKLOG.md` 环境缺口。
|