麦地缓存使用文档

01快速开始

麦地缓存是一款开源的 Redis 图形化桌面客户端。整个流程只有三步:装好应用、新建连接、然后就能看到你的数据。

1. 下载并安装

首页下载区选择你的系统安装包,装好打开即可,无需额外配置。

2. 新建连接

点右上角「新建连接」,填入主机与端口,点「测试连接」确认通了再保存。

3. 开始管理

左侧选连接,Key 列表自动加载;点任意 Key 查看内容、改值或调整 TTL。

连生产环境前先看这里
如果只是查看线上数据,创建连接时请勾选「只读连接」。这样所有写操作入口都会被禁用,后端也会拒绝写命令,避免手滑。

02安装

安装包由 GitHub Actions 在打 tag 时自动构建,文件名形如 myredis-<版本>-<平台>。 在首页点对应平台按钮即可直接下载,也可以到 GitHub Releases 查看全部版本。

macOS

  • 下载 .dmg(Universal,Apple Silicon 与 Intel 通用)并打开。
  • 把「麦地缓存」拖进「应用程序」文件夹。
  • 首次打开若提示「无法验证开发者」,到系统设置 → 隐私与安全性里点击「仍要打开」即可。

Windows

  • .exe:NSIS 安装向导,双击后一路下一步,会自动创建开始菜单与桌面快捷方式。
  • .msi:适合需要批量分发或走组策略的场景。

Linux

# Debian / Ubuntu:用 apt 安装可自动处理依赖
sudo apt install ./myredis-*-linux-x64.deb

# 或者免安装的 AppImage,赋予执行权限后直接运行
chmod +x myredis-*-linux-x64.AppImage
./myredis-*-linux-x64.AppImage

从源码构建

需要先安装 Rust 工具链与 Tauri CLI(cargo install tauri-cli)。

# 克隆仓库
git clone https://github.com/myredisapp/myredis.git
cd myredis

# 本地开发调试
cargo tauri dev

# 构建当前平台的安装包
cargo tauri build

03连接 Redis

点击左上角(窄窗口下在菜单里)的「新建连接」,填写下面几个字段。 只有「主机」和「端口」是必填的,其余按你的服务器配置来。

字段说明
连接名称只用于显示,随便起个能认出来的名字,例如「本地开发」「生产环境」。
主机Redis 服务器地址,例如 127.0.0.1redis.example.com
端口默认 6379
用户名(可选)Redis 6.0 及以上支持 ACL 用户名;留空则按传统单密码方式认证。
密码(可选)服务器设置了 requirepass 时填写;没有密码就留空。
只读连接勾选后禁止一切写操作,连接生产环境时建议打开。详见只读模式
集群模式连接 Redis Cluster 时勾选,填任意一个节点地址即可。详见集群模式
Key 分隔符默认 :,决定 Key 列表如何折叠成文件夹。详见浏览与查找 Key

先测试,再保存

填完后点「测试连接」,按钮会短暂显示「测试中…」,随后给出结果:

  • ✓ 连接成功(PONG)——凭据与网络都没问题,可以点「保存连接」了。
  • ✗ 连接失败:…——按提示检查地址、端口、密码与防火墙。排查看常见问题

保存后连接会出现在左侧列表里,点击即连接。连接成功的连接会显示绿点与「在线」标记,并且可以同时保持多条连接在线,随时点切换。

连接列表上的操作

把鼠标移到连接条目上,右上角会出现刷新图标与 菜单:

  • 刷新:重新连接并从服务器重新拉取 Key 列表。
  • 编辑 / 复制 / 关闭连接 / 删除:「复制」会带着现有配置新建一条,名字自动加「副本」,很适合照着改一个测试环境连接。

列表底部除了「添加连接」,还有 「导入」「导出」 两个按钮, 用来把连接配置整体搬到另一台机器,详见下面的常见问题

连接配置存在哪

所有连接配置保存在应用配置目录下的 connections.json

  • macOS:~/Library/Application Support/com.maidi.cache/connections.json
  • Windows:%APPDATA%\com.maidi.cache\connections.json
  • Linux:~/.config/com.maidi.cache/connections.json

换机器时不必手动拷这个文件,直接用侧栏底部的 「导出」 生成一个 JSON 文件, 在新机器的 「导入」 里选它即可。

请注意
密码与用户名以明文保存在这个文件里。不要把该文件提交到仓库或分享给别人;在共用电脑上使用时请留意。 导出时可以选择不带密码(默认带),带密码的导出文件同样要当成敏感文件保管。

04浏览与查找 Key

连接成功后,应用会自动加载当前数据库的 Key 列表,显示在中间一栏。每一行都带着类型徽标(STR / HASH / LIST / SET)和剩余 TTL。

切换数据库

连接后在工具栏左侧的 Db0 下拉框里切换逻辑库(默认提供 Db0Db15)。 切换后 Key 列表与「Key 总数」会一起刷新。集群模式下没有这个概念,详见集群模式

搜索

工具栏搜索框按 Key 名过滤,不区分大小写、按包含匹配。比如输入 useruser:1001my_userUSER:1002 都会被筛出来。

搜索是直接在服务器上扫 Key 名完成的,所以还没加载出来的 Key 也能搜到, 不受列表当前加载了多少影响。

搜索框里的 * 不是通配符
搜索是纯文本包含匹配,* 会被当成普通字符。如果你想按模式找 Key,可以用内置终端的 KEYS 命令(见内置终端)。

列表按需加载

为了不让几万个 Key 把界面拖卡,Key 列表是分批加载的:一次先取一批,往下滚到底就自动接着取; 如果没有滚动条(比如文件夹都折叠着、内容撑不满一屏),点列表底部的「加载更多」手动取下一批。

列表最下面那行常驻显示已加载多少个 Key;当前数据库的 Key 总数看左下角的「Key 总数」, 它来自服务器的实时统计,和已加载数量不是一回事。

文件夹折叠

Key 列表会按连接配置里的「Key 分隔符」(默认 :)折叠成树。开启文件夹后, user:1001:name 会落到 user: 这一层里,层级多的时候会清爽很多。

  • 想按别的分隔符分组(例如 /.),在连接配置里改「Key 分隔符」后重新连接。
  • 搜索时会临时展开成平铺列表,方便你直接看到命中的 Key。
  • 每个连接展开的文件夹状态会被记住,切来切去不会丢。

05查看与编辑 Key

在 Key 列表里点任意一行,右侧就是详情区:顶部是 Key 名、类型徽标与 TTL 输入框,下面是值,底部是操作按钮。

String:查看与修改

  1. 点击 Key,值会加载到编辑框里。
  2. 直接改动内容;如果是 JSON,可以先点「格式化」再改,读起来清楚得多。
  3. 「保存」写回服务器。
  4. 只想拿走内容?点「复制」即可复制到剪贴板。

修改 TTL(过期时间)

详情区顶部的 TTL 输入框就是过期时间,单位是秒:

填写含义
-1永不过期(页面上显示为「永不过期」)
正整数从现在起多少秒后过期,例如 3600 表示一小时

改完 TTL 需要点「保存」才会生效;也就是说让一个 Key 永不过期的方法,是把 TTL 改成 -1 再保存。 填了别的值会提示 TTL 必须为 -1 或正整数

保存前确认一下
保存会按当前编辑器里的内容整体写回这个 Key。改 TTL 时如果顺便改动了值,两者会一起生效。

其他类型(Hash / List / Set / ZSet)

详情区会按 Key 的实际类型选择展示方式:Hash、List、Set、ZSet 会以字段/元素列表的形式呈现, 每一行都可以直接修改、删除,底部虚线行用于新增:

  • Hash:显示全部字段与值,可改值、删字段、加字段。
  • List:按下标显示全部元素,可改值、删元素,可在左端或右端插入新元素。
  • Set:显示全部成员,可改成员名(等价于删旧加新)、删成员、加成员。
  • ZSet:显示成员与分值,可改成员名与分值、删成员、加成员。

这些类型的修改是即时保存的(点行内的 即写入服务器), 顶部的「保存」按钮只负责 TTL。Stream 等其余类型仍提示「暂不支持此类型」。

06新增与删除 Key

新增 Key

点工具栏的「新增 Key」,填写三个字段:

  • Key 名称:若已存在同名 Key,会提示 Key 已存在 并拒绝创建。
  • :多行文本框,支持换行。
  • TTL(秒):默认 -1 表示永不过期。

点击「创建」后,新 Key 会立刻出现在列表里(当前仅支持创建 String 类型)。

删除 Key

选中 Key 后点详情区的「删除」,会弹出确认框。确认后立即从服务器删除,不可恢复, 所以删之前建议先「复制」一份值留底。

只读连接下无法删除
只读连接下「新增 Key」与「保存」按钮会被禁用,后端也会直接拒绝写命令。

07内置终端

窗口底部是内置终端面板,在这里输入命令按 Enter 执行。点面板标题栏或右侧箭头可以折叠, 拖动面板上沿还能调整高度。命令会真实转发到已连接的 Redis 服务器执行, 结果按 redis-cli 风格展示(OK(nil)(integer) N、数组逐行输出)。

命令当前行为
PING返回服务器真实的 PONG
GET / HGETALL / LRANGE / SMEMBERS / ZRANGE …直接在服务器上执行并返回真实结果
KEYS pattern真实执行(会阻塞生产实例,慎用),例如 KEYS user:*
INFO / DBSIZE返回服务器真实信息
SET key value 等写命令真实写入服务器;只读连接下会被拦截
FLUSHDB真实清空当前数据库,不可恢复
HELP显示终端使用说明
终端会直接改数据
终端不是模拟执行:写命令会立刻落到服务器。FLUSHDB 这类危险命令执行前请三思; 只读连接下写命令会被直接拒绝。日常查看建议优先用详情区。

08服务器状态

连接列表下方的四个小格子是当前连接的实时指标,大约每 5 秒自动刷新一次:

指标含义
磁盘Redis 持久化目录所在磁盘的使用率。鼠标悬停可看到具体目录与百分比。
内存来自 INFO used_memory,已自动换算为 KB / MB / GB。
连接数来自 INFO connected_clients,当前客户端连接数。
Key 总数当前数据库的 DBSIZE,会跟着工具栏的 Db 选择器一起变化。

窗口顶部的状态栏则显示 已连接 · 主机:端口;如果是只读连接,后面会多一个「(只读)」标记。

09只读模式

创建或编辑连接时勾选「只读连接」,这条连接就进入只读模式 —— 查看类操作一切照旧, 所有会改动数据的入口则被关闭:

  • 「新增 Key」按钮:禁用
  • 「保存」按钮与 TTL 输入框:禁用
  • 窗口状态栏显示「(只读)」

这层保护不只做在界面上:即使绕过按钮,后端也会在写入前拦截,返回 当前为只读连接,禁止写操作。查线上数据时强烈建议打开。

需要临时写入时,取消勾选并重新连接即可 —— 这样也有意让「改生产数据」变成需要刻意确认的动作。

10集群模式

连接 Redis Cluster 时,在连接配置里勾选「集群模式」,主机与端口填任意一个节点的地址即可, 客户端会自己发现整个集群的拓扑。

集群模式下有几处与单机不同,先了解一下能少踩坑:

  • 不能切换数据库:集群只有 db0,工具栏的 Db 选择器会被隐藏,切换会返回「集群模式不支持切换数据库」。
  • Key 列表由各主节点汇总:客户端会向所有主节点分别扫描,去重排序后展示,所以看到的是全集群的 Key。
  • 内存与连接数为主节点汇总值,Key 总数同样是各主节点之和。
  • 磁盘指标可能显示 -:集群模式下 CONFIG GET dir 通常取不到,属正常现象。
遇到 MOVED 错误
如果用一个普通(非集群)连接去连集群节点,操作落到别的槽位上的 Key 时会报 MOVED。 按提示改用「集群模式」重新连接即可。

11主题与界面

应用内置五款「四季」主题,点窗口右上角的调色盘图标,在「选择主题」里挑一个:

主题风格
春分清新芽绿,明亮
立夏晴空湛蓝,明快清爽
初秋暖金麦色,沉稳温润
深秋暗金夜色,默认主题
冬至晴日雪白,简洁明亮

主题选择会保存在本地,下次打开还是这一款;本页与首页也共用同一份记录,你在哪里换的装,切页面时都会跟着。

调整布局

  • 折叠连接列表:点标题栏的菜单图标,窄屏或专心看数据时很实用。
  • 拖动分隔条:连接列表宽度、Key 列表宽度、终端高度都可以拖。
  • 这些布局偏好会被记住,不用每次重新摆。

12快捷键

按键作用
Enter在终端输入框里执行命令
Enter连接配置弹窗打开时,保存连接
Esc关闭当前弹窗
Enter「新增 Key」里在名称或 TTL 输入框中直接创建
Ctrl / + Enter「新增 Key」里在值文本框中提交(值可以带换行)

点击弹窗外的灰色区域同样可以关闭弹窗。

13功能现状

为了避免你在界面上找不到某个按钮,这里如实列一下当前版本的能力边界。

已经可用

  • 单机 / 集群连接,支持 ACL 用户名、密码、只读保护,连接配置本地持久化
  • 连接配置的导入 / 导出(JSON 文件,可选是否带密码),换机器不用再手动拷配置
  • Key 列表浏览、关键字搜索(服务器端扫描,未加载的 Key 也能搜到)、按自定义分隔符折叠文件夹
  • Key 列表分批加载与虚拟滚动,Key 很多时也不会卡
  • String 类型值的查看、编辑、保存、复制、JSON 格式化
  • Hash / List / Set / ZSet 内容的加载与字段级新增、修改、删除
  • TTL 查看与修改(-1 表示永不过期,任意类型均可改)
  • 新增 String Key、删除 Key(带确认)
  • 内置终端:命令真实转发到服务器执行,结果按 redis-cli 风格展示
  • Key 导入 / 导出(JSON 格式,导入前确认覆盖策略)
  • 服务器指标:内存、连接数、Key 总数、磁盘占用
  • 自动更新:后台下载新版本(下载期间可继续使用),下好后重启应用即完成升级
  • 五款四季主题、面板拖拽与布局记忆

仍在开发中

当前没有明确排期的功能缺口。已知的改进项(性能、工程流程)记录在仓库的 DEVELOPMENT.md 里。

14常见问题

提示连接失败 / 连接超时,怎么排查?

按这个顺序检查,基本能定位到原因:

  • 主机和端口是否写对;本机测试用 127.0.0.1:6379 确认打通链路。
  • 服务器是否设置了密码(requirepass);有密码时密码字段不能空。
  • 用了 ACL 的话,用户名也要填;只填密码会认证失败。
  • Redis 的 bind 是否只监听了 127.0.0.1,以及 protected-mode 是否开启。
  • 服务器防火墙 / 安全组是否放行了该端口。

先点「测试连接」拿到具体报错,通常比猜更快。

操作时报 MOVED / 提示槽位相关错误?

你连的是 Redis Cluster,但连接没有勾选「集群模式」。编辑该连接,勾上「集群模式」后重新连接即可。 参考集群模式

点「保存」没反应,或者提示「只读连接,禁止写操作」?

这条连接是只读连接。只读模式下「新增 Key」「保存」以及 TTL 输入框都会被禁用,后端也不会接受写命令。 确实需要写入时,编辑连接取消勾选「只读连接」并重新连接。

为什么 Hash / List / Set / ZSet 的详情是空的?

选中 Key 后详情区会异步从服务器加载字段内容,加载完成前会短暂显示「加载中」。 如果一直为空,点详情区的「刷新」重新加载;仍不对就检查终端里 TYPE key 的实际类型。

「导入」「导出」是什么格式?

导出会把当前数据库的全部 Key(String / Hash / List / Set / ZSet,含 TTL) 下载为一个 JSON 文件;导入选择该文件后,会提示「已存在的同名 Key 将被覆盖」, 确认后开始导入并报告成功 / 跳过 / 失败的数量。Stream 等类型暂不参与导出。

搜索框里输入 * 为什么没有通配效果?

列表搜索框是纯文本包含匹配,不解析通配符。需要按模式找 Key,可以在内置终端里用 KEYS user:* 这样的命令匹配。

Key 列表里的 TTL 显示「永不过期」,但服务器上有 TTL?

Key 的 TTL 是在列表加载时读取的,服务器上的过期时间如果在之后被改动,列表不会自动同步。 点该连接上的刷新图标重新连接,或重新选中这个 Key,即可看到最新的 TTL 与内容。

连接配置和密码保存在哪里?安全吗?

保存在应用配置目录的 connections.json 里(路径见连接 Redis), 用户名与密码是明文存储的。请不要把该文件提交到代码仓库或分享给他人;共用电脑上使用时要留意这一点。

可以把连接配置迁移到另一台机器吗?

可以。在旧机器上点侧栏底部的 「导出」,会下载一个 maidi-connections-<日期>.json;把它拷到新机器,点 「导入」 选中该文件即可。

导出时可以选择是否包含密码(默认包含,密码是明文,请妥善保管文件)。 导入按连接 ID 匹配:同 ID 的连接会被文件里的配置覆盖,其余保留;单条格式不对只会跳过并报出来, 不影响其它连接。

当然,手动复制 connections.json 到新机器的同路径也依然有效。

怎么更新到新版本?

应用启动后会在后台静默检查一次新版本:有新版本时右上角的更新按钮会亮起小红点, 底部也会轻提示一句,不会打断你正在做的事。

点那个按钮可以看到新版本号和更新说明,点 「立即更新」 就开始在后台下载 —— 下载期间可以继续使用,窗口底部会出现一条进度条显示下载进度。下载完成后会弹窗提示, 点 「立即重启」 重启即可完成升级(关掉弹窗也没关系,底部进度条上一直有重启入口)。

更新包在做签名校验,下载不完整或来源不对的包不会被执行; 更新只替换程序本身,连接配置和布局偏好都会保留。

15反馈与链接

文档和功能都会随着版本继续补齐。用起来有问题、或者想要某个能力,欢迎直接提。

提 issue 的小建议
带上系统版本、应用版本、Redis 版本(单机还是集群)以及完整报错信息,定位会快很多。