1. 为什么一个Redis桌面客户端值得单独拿出来聊
Redis这玩意儿,做后端的基本都绕不开。缓存、会话存储、排行榜、消息队列、分布式锁,哪儿都有它的影子。但有个很现实的问题:Redis自带的命令行客户端redis-cli虽然强大,但日常开发中频繁敲命令、查key、看value结构,效率其实很低。尤其是当你面对一个存了几十万个key的实例,想找一个特定前缀的key,或者想看看某个hash结构里到底存了什么,纯命令行操作会让人抓狂。
这就是可视化客户端存在的意义。市面上Redis可视化工具不少,RedisInsight、Redis Desktop Manager(后来改名RESP.app并转为收费)、Medis、FastoRedis等等,各有各的定位。而Another Redis Desktop Manager(后面我简称ARDM)能拿到31k Star,说明它在开发者群体里的认可度确实高。我自己用这个工具大概有三年多,从早期版本一路跟到现在的稳定版,中间也踩过不少坑,今天就把这个东西从头到尾讲透。
ARDM的核心定位很明确:一个免费、开源、跨平台的Redis桌面管理工具。它支持Windows、macOS、Linux三个主流桌面平台,基于Electron构建,界面清爽,功能覆盖了日常开发中90%以上的Redis操作需求。不管你是刚接触Redis的新手,还是管着几十个Redis实例的运维老手,这个工具都能帮你省下大量时间。
这篇文章我会从工具选型、安装配置、核心功能实操、常见问题排查几个维度展开,把ARDM的用法和背后的逻辑讲清楚。适合所有需要跟Redis打交道的开发者、测试人员和运维人员阅读,不需要你有多深的Redis功底,能看懂基本的Redis命令就行。
2. 工具选型:为什么我最终留在了ARDM
2.1 市面主流Redis可视化工具横向对比
在决定长期用哪个工具之前,我基本把市面上能叫得出名字的Redis客户端都试了一遍。这里直接给一个对比表,省得你一个个去踩:
| 工具名称 | 是否免费 | 跨平台 | 支持集群 | 支持SSH隧道 | 支持Stream | 活跃维护 |
|---|---|---|---|---|---|---|
| Another Redis Desktop Manager | 完全免费 | Win/Mac/Linux | 支持 | 支持 | 支持 | 活跃 |
| RedisInsight | 免费 | Win/Mac/Linux | 支持 | 支持 | 支持 | 活跃 |
| RESP.app(原RDM) | 基础免费/高级收费 | Win/Mac/Linux | 支持 | 支持 | 部分 | 活跃 |
| Medis | 收费 | Mac为主 | 支持 | 不支持 | 不支持 | 一般 |
| FastoRedis | 基础免费 | Win/Mac/Linux | 支持 | 支持 | 不支持 | 一般 |
| redis-cli | 免费 | 全平台 | 支持 | 需手动配置 | 支持 | 活跃 |
从表格能看出来,ARDM和RedisInsight是最能打的两个免费选项。RedisInsight是Redis官方出的,功能确实强,但它的界面偏重、启动慢,而且某些高级功能会引导你往Redis Cloud上靠。ARDM的优势在于轻量、启动快、界面直观、操作路径短,打开就能干活,没有多余的东西。
2.2 ARDM的核心优势拆解
我总结下来,ARDM让我留下来的原因有这么几个:
第一,启动速度和资源占用控制得好。虽然都是Electron应用,但ARDM的包体积和内存占用明显比RedisInsight小一圈。我在一台8G内存的老笔记本上同时开IDE和ARDM,基本感觉不到卡顿。
第二,key的展示和搜索体验做得很顺手。左侧树形结构按key的命名空间自动分组,支持通配符搜索,支持按类型筛选。这个功能看起来简单,但实际用起来差别很大。有些工具搜key的时候会卡死,ARDM在几十万key的实例上搜索依然流畅。
第三,对Redis新特性的跟进速度快。Stream类型、ACL、Cluster模式这些,ARDM都在较短时间内支持了。GitHub上的issue响应也比较及时,作者一直在维护。
第四,SSH隧道配置简单。很多公司的Redis实例不直接暴露公网,需要通过跳板机访问。ARDM内置了SSH隧道功能,填几个参数就能连上,不需要你在本地额外开端口转发。
第五,完全开源,没有功能阉割的焦虑。你不用担心哪天突然弹出一个“升级到Pro版解锁此功能”的提示。代码在GitHub上摆着,心里踏实。
2.3 什么场景下不建议用ARDM
当然,ARDM也不是万能的。有几种情况我会建议你换工具:
- 如果你需要做深度的性能分析和慢查询诊断,RedisInsight的Workbench和Profiler功能更专业。
- 如果你主要在命令行环境下工作,那redis-cli配合一些脚本可能更高效。
- 如果你需要团队协作和权限管理,ARDM是单机工具,没有这方面的能力。
但对于绝大多数日常开发调试场景,ARDM完全够用,甚至可以说是最趁手的那一个。
3. 安装与首次配置:从下载到连上第一个实例
3.1 各平台安装方式详解
ARDM的安装包在GitHub Releases页面可以直接下载。我这里把三个平台的安装方式都说一下,因为不同平台有些细节差异。
Windows平台:
直接下载.exe安装包,双击安装即可。安装过程中会让你选择安装路径,建议不要装在C盘系统目录下,避免权限问题。安装完成后桌面会生成快捷方式。
如果你不想安装,也可以下载便携版(Portable版本),解压后直接运行.exe文件。便携版的好处是可以放在U盘里带着走,换电脑不用重新配置。
macOS平台:
下载.dmg文件,打开后把应用拖到Applications文件夹。首次打开可能会提示“无法验证开发者”,这是因为应用没有经过Apple公证。解决办法是去“系统设置 -> 隐私与安全性”里点击“仍要打开”,或者用右键点击应用图标选择“打开”。
如果你用Homebrew,也可以直接:
brew install --cask another-redis-desktop-managerLinux平台:
ARDM提供了.AppImage、.deb和.rpm三种格式。AppImage最通用,下载后赋予执行权限就能运行:
chmod +x Another-Redis-Desktop-Manager-x.x.x.AppImage ./Another-Redis-Desktop-Manager-x.x.x.AppImageDebian/Ubuntu系用.deb包:
sudo dpkg -i another-redis-desktop-manager_x.x.x_amd64.debRedHat/CentOS系用.rpm包:
sudo rpm -ivh another-redis-desktop-manager-x.x.x.x86_64.rpm注意:Linux下如果遇到依赖缺失的问题,AppImage版本通常是最省心的选择,因为它把依赖都打包进去了。
3.2 新建连接的参数填写指南
安装完成后打开ARDM,你会看到一个简洁的界面。点击左上角的“新建连接”按钮,开始配置你的第一个Redis连接。
这里我把每个参数的含义和填写建议说清楚:
| 参数名 | 说明 | 填写建议 |
|---|---|---|
| 连接名称 | 自定义标识 | 建议用“环境-用途”格式,如“prod-cache” |
| 地址 | Redis主机IP或域名 | 本地填127.0.0.1,远程填实际IP |
| 端口 | Redis服务端口 | 默认6379,如果改过就填实际端口 |
| 密码 | 认证密码 | 没有设密码就留空 |
| 用户名 | ACL用户名 | Redis 6.0+的ACL功能,默认default |
| 数据库 | 默认数据库编号 | 默认0,范围0-15 |
填完基本信息后,先别急着点确定。点击“测试连接”按钮验证一下配置是否正确。如果连接失败,ARDM会给出具体的错误信息,比如“Connection refused”说明端口不通,“NOAUTH”说明需要密码,“WRONGPASS”说明密码错误。
3.3 SSH隧道的配置方法
这是ARDM很实用的一个功能。很多生产环境的Redis不直接对外暴露,需要通过跳板机访问。ARDM内置了SSH隧道,配置起来比手动开端口转发方便得多。
在连接配置页面切换到“SSH”标签页,填写以下信息:
- SSH地址:跳板机的IP或域名
- SSH端口:默认22
- SSH用户名:你的登录账号
- SSH密码或私钥文件:二选一
- 私钥密码:如果私钥有密码保护就填
配置完成后,ARDM会先建立SSH连接,然后通过隧道转发Redis流量。你不需要在本地做任何端口映射。
实操心得:如果SSH连接经常断,可以在SSH配置里勾选“保持连接”选项,ARDM会定期发送心跳包维持连接。另外,私钥文件的格式要注意,ARDM支持PEM格式,如果你的是PPK格式(PuTTY生成的),需要先转换。
3.4 连接分组与多环境管理
当你管理的Redis实例多了之后,连接列表会变得很长。ARDM支持对连接进行分组管理,右键点击连接列表空白处可以新建分组。
我的习惯是按环境分组:开发环境、测试环境、预发布环境、生产环境各一个分组。生产环境的连接用红色标记,避免误操作。这个习惯救过我好几次,有一次差点在测试环境执行了FLUSHDB,幸好看到红色标记多看了一眼。
4. 核心功能实操:日常开发中最高频的用法
4.1 Key的浏览、搜索与批量操作
打开一个连接后,左侧就是key的浏览区域。ARDM默认会加载所有key,但如果key数量太多(比如超过10万),加载会变慢。这时候你可以用搜索框来精确查找。
搜索支持通配符:
*匹配任意字符?匹配单个字符[abc]匹配括号内的任意一个字符
比如你想找所有以“user:”开头的key,输入user:*即可。如果想找“user:”后面跟数字的key,输入user:[0-9]*。
ARDM还支持按类型筛选,顶部有一排类型按钮:String、Hash、List、Set、ZSet、Stream。点击对应按钮只显示该类型的key,这在排查问题时特别有用。
批量操作方面,ARDM支持多选key(按住Ctrl或Shift点击),然后右键可以批量删除、批量设置TTL。这个功能在清理测试数据时很好用。
注意事项:批量删除操作不可撤销,执行前一定要确认选中的key范围。我建议先用搜索条件筛选出目标key,确认数量无误后再执行删除。生产环境操作前最好先导出备份。
4.2 各数据类型的新增与编辑
ARDM对Redis五种基本数据类型的支持都很完整,我逐个说一下操作要点。
String类型:
新建String key时,ARDM会让你输入key名和value。如果value是JSON格式,ARDM会自动格式化显示,方便阅读。编辑时直接修改value内容,点击保存即可。
有个细节:如果value很长(比如超过1MB),ARDM的编辑器可能会卡顿。这时候建议用命令行操作,或者分段查看。
Hash类型:
Hash的编辑界面是一个表格,左边是field,右边是value。可以逐行添加、修改、删除。ARDM支持批量导入,你可以从Excel复制两列数据直接粘贴进去。
List类型:
List的展示是按索引顺序排列的。ARDM支持从头部(LPUSH)或尾部(RPUSH)插入元素,也支持按索引删除。查看大List时,ARDM会分页加载,避免一次性拉取过多数据。
Set类型:
Set的展示是无序的,ARDM会按字母顺序排列方便查看。添加元素时直接输入值即可,重复的值会被自动忽略。
ZSet类型:
ZSet的展示会同时显示member和score,按score排序。ARDM支持修改score值,也支持按score范围筛选。
Stream类型:
Stream是Redis 5.0引入的新类型,ARDM对它的支持包括查看消息列表、添加新消息、查看消费者组信息。这个功能在调试消息队列时很有用。
4.3 命令行控制台的使用技巧
虽然ARDM是可视化工具,但它内置了一个命令行控制台,可以执行任意Redis命令。入口在右上角,图标是一个>_的样子。
控制台支持命令补全和历史记录。输入命令时按Tab键可以补全命令名,按上下箭头可以翻历史命令。这个功能在需要执行复杂命令时很方便。
我经常用控制台做这几件事:
- 执行
INFO命令查看服务器状态 - 执行
SLOWLOG GET查看慢查询 - 执行
MEMORY USAGE key查看某个key的内存占用 - 执行
SCAN命令做渐进式遍历
实操心得:控制台执行的命令会直接生效,没有二次确认。在生产环境使用时一定要小心,建议先用
SCAN确认影响范围,再执行写操作。另外,控制台不支持多行命令,复杂命令需要写成一行。
4.4 键值过期时间与内存分析
ARDM在key的详情页面会显示TTL信息。你可以直接修改TTL,或者移除过期时间。这个功能在调试缓存策略时很实用。
内存分析方面,ARDM可以显示每个key的内存占用(通过MEMORY USAGE命令)。在key列表页面,你可以按内存占用排序,快速找出大key。这个功能帮我定位过好几次内存泄漏问题。
4.5 发布订阅与Stream调试
ARDM支持发布订阅功能的调试。你可以在界面上订阅一个频道,然后实时看到发布到该频道的消息。这个功能在调试实时消息系统时很有用。
Stream的调试界面会显示消费者组的消费进度、pending消息数量等信息。如果发现有消息一直处于pending状态,说明有消费者处理失败,需要排查。
5. 进阶用法:集群、哨兵与性能优化
5.1 连接Redis Cluster集群
ARDM支持直接连接Redis Cluster。在新建连接时,填入集群中任意一个节点的地址即可,ARDM会自动发现其他节点。
连接成功后,key的浏览界面会显示key分布在哪个slot上。你可以按节点筛选key,查看每个节点的数据分布情况。
注意事项:Cluster模式下,跨slot的操作(如
MGET多个不同slot的key)会失败。ARDM在执行这类操作时会给出提示,你需要在控制台手动处理。
5.2 连接哨兵模式实例
哨兵模式的配置稍微复杂一点。你需要在连接配置里选择“Sentinel”模式,然后填入哨兵节点的地址列表和master名称。ARDM会自动向哨兵查询当前master的地址,然后建立连接。
如果master发生切换,ARDM会自动重连到新的master,不需要手动修改配置。
5.3 大数据量下的性能调优
当Redis实例中key数量超过百万级别时,ARDM的默认配置可能会有点吃力。这时候可以调整几个参数:
- 扫描数量:在设置里可以调整每次SCAN命令返回的key数量,默认是1000,可以调大到5000。
- 关闭自动加载:连接配置里可以关闭“自动加载key列表”,改为手动触发加载。
- 使用搜索代替浏览:不要一次性加载所有key,而是用搜索条件精确查找。
我在一个存了300万key的实例上测试过,调整这些参数后,ARDM的响应速度明显提升。
5.4 数据导入导出与迁移
ARDM支持将key的数据导出为JSON格式,也支持从JSON文件导入。这个功能在数据迁移时很有用。
导出操作:选中key,右键选择“导出”,选择保存路径即可。导入操作:在目标连接上右键选择“导入”,选择JSON文件。
实操心得:导出大量key时,建议分批操作,避免单次导出数据量过大导致内存溢出。另外,导出的JSON文件不包含TTL信息,迁移后需要手动设置过期时间。
6. 常见问题与排查技巧实录
6.1 连接失败类问题排查
连接失败是最常见的问题,我整理了一个排查表:
| 错误信息 | 可能原因 | 解决方法 |
|---|---|---|
| Connection refused | 端口不通或服务未启动 | 检查Redis是否运行,防火墙是否放行 |
| NOAUTH Authentication required | 需要密码但未填写 | 在连接配置中填写密码 |
| WRONGPASS invalid username-password pair | 密码错误 | 确认密码是否正确 |
| Connection timed out | 网络不通 | 检查网络连通性,是否需要SSH隧道 |
| LOADING Redis is loading the dataset in memory | Redis正在加载数据 | 等待加载完成 |
| MISCONF Errors writing to the AOF file | 磁盘写入错误 | 检查磁盘空间和权限 |
6.2 中文乱码问题处理
有时候你会看到key或value显示为乱码,这通常是编码问题。ARDM默认使用UTF-8编码,但如果你的数据是用其他编码写入的,就会显示异常。
解决办法:在设置里切换编码格式,ARDM支持UTF-8、GBK、ISO-8859-1等常见编码。如果还是乱码,可能是数据本身是二进制格式,需要用十六进制查看。
6.3 大key导致的卡顿处理
当你点击一个包含百万元素的Hash或List时,ARDM可能会卡住。这是因为一次性拉取所有数据导致的。
解决办法:ARDM在key详情页面有分页功能,可以设置每页显示的数量。另外,你也可以在控制台用HSCAN、SSCAN等命令渐进式查看。
6.4 生产环境安全操作规范
在生产环境使用ARDM时,有几条铁律:
- *禁止在生产环境执行FLUSHALL、FLUSHDB、KEYS等危险命令
- 删除key前先确认key的用途,最好先备份
- 修改TTL前确认业务逻辑是否依赖过期时间
- 批量操作前先用SCAN确认影响范围
我个人的习惯是:生产环境的连接配置为只读模式(ARDM支持),需要写操作时临时开启,操作完立即关闭。
6.5 版本升级与配置迁移
ARDM的版本更新比较频繁,升级时配置文件的迁移需要注意。Windows下配置文件在%APPDATA%/another-redis-desktop-manager目录,macOS在~/Library/Application Support/another-redis-desktop-manager,Linux在~/.config/another-redis-desktop-manager。
升级前建议备份这个目录,升级后如果发现连接丢失,可以把备份的配置文件复制回去。
7. 一些让我少踩坑的实操经验
用了这么久ARDM,有几个经验是文档里不会写的,但实际用起来很关键。
第一,连接名称一定要规范。我见过太多人用“test1”“test2”“redis”这种名字,过两个月自己都忘了哪个是哪个。建议用“环境-业务-用途”的格式,比如“prod-order-cache”“dev-user-session”。
第二,善用颜色标记。ARDM支持给连接设置颜色标签。我把生产环境全部标红,测试环境标黄,开发环境标绿。这个习惯帮我避免了好几次误操作。
第三,定期清理不用的连接。连接列表太长会影响启动速度,也会让你找目标连接时浪费时间。建议每季度清理一次。
第四,控制台命令先dry run。对于删除类操作,先用SCAN或KEYS确认匹配的key数量,确认无误后再执行删除。这个习惯让我避免了好几次生产事故。
第五,导出配置备份。ARDM的配置文件里保存了所有连接信息,包括密码。建议定期备份,换电脑时直接复制过去就能用。但要注意,配置文件里的密码是加密存储的,跨平台迁移可能会有问题。
第六,关注GitHub Releases。ARDM的更新日志会说明新功能和修复的问题。有时候你遇到的问题是已知bug,升级到最新版就解决了。
第七,不要完全依赖可视化工具。ARDM很好用,但redis-cli仍然是不可替代的。有些操作(比如批量脚本、复杂Lua脚本)还是命令行更高效。两者配合使用,效率最高。
最后分享一个我常用的技巧:ARDM支持自定义命令模板。你可以把常用的命令保存为模板,需要时一键执行。比如我保存了一个“查看大key”的模板,内容是redis-cli --bigkeys,点击就能运行。这个功能在重复性工作中能省不少时间。