Files
opsxdb/homepage/dist/docs/redis/index.html
T
logan 40b9bdcc8c 落地页/文档面向用户清理:去开发向表述 + 删摆设组件
- 落地页下载卡「Tauri 2」价格位改「原生桌面」;sidecar/Go 二进制/monorepo 脚手架等内部表述改用户语言
- 文档删「打印/导出 PDF」与「是否有帮助」摆设组件及未使用图标
- MCP 页 H1 与页面标题去重(npm 安装命令为用户操作步骤,保留)
- homepage dist 同步重建
2026-10-16 13:20:55 +08:00

263 lines
11 KiB
HTML
Raw 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.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Redis 工作台 · OpsxDB 文档</title>
<meta name="description" content="OpsxDB 桌面数据库工作台用户文档 — 连库、写 SQL、看结果;MySQL / PostgreSQL / SQL Server / Oracle / SQLite / Redis 内置驱动,SSH 隧道与 SSL 加密。">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%2264%22%20y2%3D%2264%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23059669%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%2206B6D4%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2214%22%20fill%3D%22url(%23g)%22%2F%3E%3Cg%20stroke%3D%22%23fff%22%20stroke-width%3D%224.5%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%3E%3Cellipse%20cx%3D%2232%22%20cy%3D%2220%22%20rx%3D%2215%22%20ry%3D%226.5%22%2F%3E%3Cpath%20d%3D%22M17%2020v24c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5V20%22%2F%3E%3Cpath%20d%3D%22M17%2032c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
<link rel="stylesheet" href="/docs/assets/docs.css">
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
<symbol id="i-menu" viewBox="0 0 24 24"><path d="M4 5h16"/><path d="M4 12h16"/><path d="M4 19h16"/></symbol>
</svg>
<header class="topbar">
<div class="topbar-inner">
<button class="menu-btn" id="menu-btn" aria-label="打开导航"><svg class="i"><use href="#i-menu"/></svg></button>
<a class="brand" href="/docs">
<span class="brand-logo"><svg width="28" height="28" viewBox="0 0 64 64" aria-label="OpsxDB"><defs><linearGradient id="lg-docs" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#059669"/><stop offset="1" stop-color="#06B6D4"/></linearGradient></defs><rect width="64" height="64" rx="14" fill="url(#lg-docs)"/><g stroke="#fff" stroke-width="4.5" fill="none" stroke-linecap="round"><ellipse cx="32" cy="20" rx="15" ry="6.5"/><path d="M17 20v24c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5V20"/><path d="M17 32c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5"/></g></svg></span>
<span class="brand-name">OpsxDB <em>文档</em></span>
</a>
<span class="ver-badge">v0.1</span>
<div class="search">
<input id="search-input" type="search" placeholder="搜索文档…" autocomplete="off" spellcheck="false">
<div class="search-panel" id="search-panel" hidden></div>
</div>
<nav class="top-links">
<a href="/home">官网</a>
<a href="/docs/quickstart">快速开始</a>
</nav>
</div>
</header>
<div class="layout" id="layout">
<aside class="sidebar" id="sidebar">
<div class="nav-group">
<div class="nav-group-title">开始使用</div>
<a class="nav-link" href="/docs/intro">产品介绍</a>
<a class="nav-link" href="/docs/quickstart">快速开始</a>
<a class="nav-link" href="/docs/interface">界面导览</a>
</div>
<div class="nav-group">
<div class="nav-group-title">连接与驱动</div>
<a class="nav-link" href="/docs/connect">新建连接</a>
<a class="nav-link" href="/docs/drivers">驱动支持</a>
</div>
<div class="nav-group">
<div class="nav-group-title">SQL 工作台</div>
<a class="nav-link" href="/docs/workbench">SQL 工作台</a>
<a class="nav-link" href="/docs/results">结果与导出</a>
<a class="nav-link active" href="/docs/redis">Redis 工作台</a>
</div>
<div class="nav-group">
<div class="nav-group-title">安全与 AI</div>
<a class="nav-link" href="/docs/security">安全设计</a>
<a class="nav-link" href="/docs/ai">AI 助手</a>
<a class="nav-link" href="/docs/mcp">MCP 接入</a>
</div>
<div class="nav-group">
<div class="nav-group-title">参考</div>
<a class="nav-link" href="/docs/faq">常见问题</a>
<a class="nav-link" href="/docs/shortcuts">快捷键</a>
</div>
<div class="sidebar-foot">© 2026 OpsxDB · 本地优先的数据库工作台</div>
</aside>
<main class="content">
<div class="breadcrumb">文档 <span>/</span> SQL 工作台 <span>/</span> Redis 工作台</div>
<h1 class="page-title">Redis 工作台</h1>
<div class="page-meta">更新于 2026-09-20</div>
<article class="md">
<p>Redis 连接使用专用表单(redis)。连上后,对象树是键空间浏览器,编辑器是 Redis 命令行 —— <strong>和 SQL 共用同一套输入框</strong>,不另开 CLI 页。</p>
<h2 id="sec-1">为什么命令行不单独做一套</h2>
<p>SQL 工作台已经有:多 Tab、⌘/Ctrl+Enter、查询历史、书签、危险确认、取消。Redis 命令同样是「输入 → 执行 → 结果表」。</p>
<p>拆成独立 CLI(终端 REPL)会让快捷键、历史、危险确认分叉,也和 Navicat 式多引擎工作台不一致。</p>
<p>因此:</p>
<table>
<thead>
<tr>
<th></th>
<th>SQL</th>
<th>Redis</th>
</tr>
</thead>
<tbody>
<tr>
<td>输入框</td>
<td>同一 CodeMirror</td>
<td>同一 CodeMirror(占位/补全换成命令)</td>
</tr>
<tr>
<td>切分</td>
<td>分号语句</td>
<td><strong>按行</strong>(<code>SET k &quot;a;b&quot;</code> 不会被分号拆开)</td>
</tr>
<tr>
<td>执行</td>
<td>⌘/Ctrl+Enter 当前语句或选区</td>
<td>⌘/Ctrl+Enter 当前行或选区</td>
</tr>
<tr>
<td>结果</td>
<td>结果表</td>
<td>命令结果表;从对象树打开键则进入键详情</td>
</tr>
</tbody>
</table>
<p>Another Redis Desktop Manager 的独立 CLI Tab、opsxsql 的单行命令 + 输出日志,列为后续 P1,不是现在的主路径。</p>
<h2 id="sec-2">键空间浏览</h2>
<p>对象树对 Redis 显示 DB0–15(Cluster 仅 0)。展开库后:</p>
<ul>
<li><strong>SCAN 过滤</strong>:输入 <code>user:*</code> 点「应用」;生产大库请带前缀,避免扫全库。最多展示 500 个键,超出提示截断。</li>
<li><strong>按分隔符编文件夹</strong>:连接表单的「键分隔符」默认 <code>:</code>,<code>CEX:FOLLOW:FOLLOWERS:1</code> 显示为 <code>CEX / FOLLOW / FOLLOWERS / 1</code>。文件夹显示数量;右键可「只看此前缀」「在此新建键」。</li>
<li><strong>类型色点</strong>:string 绿 / hash 蓝 / list 橙 / set 紫 / zset 青。</li>
<li><strong>点键</strong>:打开键详情(不是假 SELECT)。</li>
</ul>
<h2 id="sec-3">键详情</h2>
<p>对标 Another Redis Desktop Manager 的 Hash/List/Set 视图:</p>
<ul>
<li>类型徽章、键名(回车重命名)、TTL(回车或「保存 TTL」,<code>-1</code> 永久)、刷新、导出还原命令、删除;</li>
<li><strong>结构</strong>表:Hash 为 ID / Field / Value,JSON 值自动美化;可新增字段、编辑、删除;</li>
<li><strong>JSON</strong> 视图:整体格式化;</li>
<li>表内关键字过滤。</li>
</ul>
<p>String 可直接改值保存。</p>
<h2 id="sec-4">命令执行</h2>
<p>编辑器直接写 Redis 命令:</p>
<pre><code class="language-bash">PING
SET demo:key &quot;hello&quot; EX 60
GET demo:key
HGETALL demo:hash
SCAN 0 MATCH demo:* COUNT 100
INFO memory
</code></pre>
<ul>
<li>未点名的命令走通用 <code>Do</code>(<code>EXISTS</code> / <code>ECHO</code> / <code>INFO</code> / <code>CLIENT LIST</code> 等不必再加白名单);</li>
<li><code>FLUSHALL</code> / <code>FLUSHDB</code> / <code>KEYS</code> / <code>CONFIG</code> 仍要二段确认;</li>
<li><code>KEYS *</code> 在大库上会阻塞 —— 请用 <code>SCAN MATCH</code>。</li>
</ul>
<h3 id="sec-5">切换逻辑库(SELECT)</h3>
<p><code>SELECT 1</code> 是 Redis 官方的切库命令,编辑器直接支持 —— 语义与 redis-cli 一致:<strong>切换后本 Tab 的后续命令都在目标库执行</strong>:</p>
<pre><code class="language-bash">SELECT 1
GET db1:only:key # 在 db1 执行
</code></pre>
<ul>
<li>没有也没有 <code>USE</code>(那是 SQL 语法)—— 输入 <code>USE db1</code> 会得到 Redis 原生报错<br>
<code>ERR unknown command 'USE'</code>,与 redis-cli 行为一致;</li>
<li>切库只影响当前查询 Tab(多 Tab 可各连各的库),左侧对象树点开对应库可浏览键;</li>
<li>Cluster 模式只有 DB 0,<code>SELECT</code> 无效。</li>
</ul>
<h2 id="sec-6">连接参数</h2>
<table>
<thead>
<tr>
<th>字段</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>host / port</td>
<td>单机默认 127.0.0.1:6379</td>
</tr>
<tr>
<td>password / user</td>
<td>ACL / requirepass</td>
</tr>
<tr>
<td>database</td>
<td>逻辑库序号(0–15 常见;Cluster 忽略)</td>
</tr>
<tr>
<td>键分隔符</td>
<td>对象树文件夹分隔,默认 <code>:</code></td>
</tr>
<tr>
<td>ssl</td>
<td>TLS</td>
</tr>
<tr>
<td>redisMode</td>
<td><code>standalone</code>(默认)/ <code>sentinel</code> / <code>cluster</code></td>
</tr>
<tr>
<td>redisNodes</td>
<td>Sentinel / Cluster 节点列表,<code>host:port</code> 多行或逗号分隔</td>
</tr>
<tr>
<td>masterName</td>
<td>Sentinel 主节点名(必填)</td>
</tr>
<tr>
<td>sentinelPassword</td>
<td>Sentinel 密码(可空)</td>
</tr>
</tbody>
</table>
<h3 id="sec-7">Sentinel</h3>
<p>模式选「哨兵」,填写至少一个 Sentinel 地址和 <code>masterName</code>(如 <code>mymaster</code>)。逻辑库序号仍可用。</p>
<h3 id="sec-8">Cluster</h3>
<p>模式选「集群」,填写至少一个种子节点。Cluster 不支持 <code>SELECT</code> 多库,对象树只暴露 DB 0。槽位路由由客户端处理,键浏览走 <code>SCAN</code>。</p>
<blockquote>
<p><strong>环境</strong>:Sentinel / Cluster 表单与后端已接好;真实拓扑联调见 <code>docs/BACKLOG.md</code> 环境缺口。</p>
</blockquote>
</article>
<div class="pn-nav">
<a class="pn prev" href="/docs/results"><span class="pn-label">← 上一页</span><span class="pn-title">结果与导出</span></a>
<a class="pn next" href="/docs/security"><span class="pn-label">下一页 →</span><span class="pn-title">安全设计</span></a>
</div>
</main>
<aside class="toc">
<div class="toc-title">本页目录</div>
<nav class="toc-nav">
<a class="toc-l2" href="#sec-1">为什么命令行不单独做一套</a>
<a class="toc-l2" href="#sec-2">键空间浏览</a>
<a class="toc-l2" href="#sec-3">键详情</a>
<a class="toc-l2" href="#sec-4">命令执行</a>
<a class="toc-l3" href="#sec-5">切换逻辑库(SELECT)</a>
<a class="toc-l2" href="#sec-6">连接参数</a>
<a class="toc-l3" href="#sec-7">Sentinel</a>
<a class="toc-l3" href="#sec-8">Cluster</a>
</nav>
</aside>
</div>
<script src="/docs/assets/docs.js" defer></script>
</body>
</html>