为什么我很少单独打开独立的Redis 客户端
在很多项目里,Redis 基本已经成为标配组件。
因为它在很多场景下都非常好用,比如:
- • 热点数据缓存
- • 排行榜
- • 订阅 / 发布
- • 临时状态存储
尤其是在游戏行业里,Redis 也经常用来做排行榜或者缓存数据。这样玩家在游戏过程中,就不需要频繁从数据库加载数据,可以显著提高性能。
日常开发里一个很常见的需求
虽然 Redis 很好用,但在开发和运维过程中,经常会遇到一些简单但高频的操作,比如:
- • 查一下某个 key 的值
- • 看看这个 key 的过期时间
- • 批量查询一组 key,例如
user:*
一般来说有两种解决方式。
方式一:命令行
最常见的方式就是直接使用:
redis-cli
比如:
GET user:1001
TTL user:1001
KEYS user:*
这种方式的优点很明显:
- • 轻量
- • 快速
- • 随处可用
但缺点也很明显:
- • 数据结构不直观
- • 大量 key 时查看不方便
- • 不适合频繁浏览数据
方式二:GUI 客户端
因此很多开发者也会选择使用 Redis 的 GUI 工具。
比较常见的就是官方的:
Redis Insight
这种 GUI 客户端的优点是:
- • 数据结构可视化
- • 操作更直观
- • 浏览 key 更方便
但它也有一些问题,比如:
- • 需要单独安装一个客户端
- • 每次都要单独打开
- • 对很多人来说只是偶尔用一下
很多时候,你只是想:
临时查一下 Redis 的某个 key
结果却要打开一个完整的客户端工具。
一个更自然的方式
后来我逐渐发现,其实 Redis 查询本身只是 开发工作流中的一个小环节。
比如很多时候流程是这样的:
- 1. 先 SSH 登录服务器
- 2. 看一下程序日志
- 3. 查一下 Redis 数据
- 4. 再回到终端继续操作
如果 Redis 客户端是一个 独立 App,这个过程就会变成:
SSH 工具
↓
Redis 客户端
↓
再切回 SSH
工具之间不断切换。
把数据库操作放进 SSH 工作流
所以我后来更喜欢的一种方式是:
把数据库工具直接放进 SSH 客户端里。
比如在 DartShell 里面,我平时会这样用:
- • 先 SSH 登录服务器
- • 打开一个新的标签页
- • 直接切到数据库
在数据库标签里,可以直接操作:
- • MySQL
- • PostgreSQL
- • Redis
比如:
- • 查询 key
- • 查看过期时间
- • 修改数据
- • 批量浏览
用完之后关闭标签页,再继续回到 SSH。
整个过程会非常自然。
工具不一定要越多越好
很多时候我们习惯:
一个工具解决一个问题
但在实际开发中,很多操作其实都是围绕同一个工作流展开的。
比如:
- • SSH
- • 数据库
- • 文件传输
如果这些工具能够在一个客户端里完成,其实效率会高很多。
至少对我来说,Dock 里面少一个 App,也会清爽不少。
如果你也在 macOS 上做开发,平时是怎么查看 Redis 数据的?
是用命令行,还是 GUI 客户端?