为什么我很少单独打开独立的Redis 客户端

0 阅读3分钟

为什么我很少单独打开独立的Redis 客户端

image.png

在很多项目里,Redis 基本已经成为标配组件。

因为它在很多场景下都非常好用,比如:

  • • 热点数据缓存
  • • 排行榜
  • • 订阅 / 发布
  • • 临时状态存储

尤其是在游戏行业里,Redis 也经常用来做排行榜或者缓存数据。这样玩家在游戏过程中,就不需要频繁从数据库加载数据,可以显著提高性能。


日常开发里一个很常见的需求

虽然 Redis 很好用,但在开发和运维过程中,经常会遇到一些简单但高频的操作,比如:

  • • 查一下某个 key 的值
  • • 看看这个 key 的过期时间
  • • 批量查询一组 key,例如 user:*

一般来说有两种解决方式。

方式一:命令行

最常见的方式就是直接使用:

redis-cli

比如:

GET user:1001
TTL user:1001
KEYS user:*

这种方式的优点很明显:

  • • 轻量
  • • 快速
  • • 随处可用

但缺点也很明显:

  • • 数据结构不直观
  • • 大量 key 时查看不方便
  • • 不适合频繁浏览数据

方式二:GUI 客户端

因此很多开发者也会选择使用 Redis 的 GUI 工具。

比较常见的就是官方的:

Redis Insightimage.png

这种 GUI 客户端的优点是:

  • • 数据结构可视化
  • • 操作更直观
  • • 浏览 key 更方便

但它也有一些问题,比如:

  • • 需要单独安装一个客户端
  • • 每次都要单独打开
  • • 对很多人来说只是偶尔用一下

很多时候,你只是想:

临时查一下 Redis 的某个 key

结果却要打开一个完整的客户端工具。


一个更自然的方式

后来我逐渐发现,其实 Redis 查询本身只是 开发工作流中的一个小环节

比如很多时候流程是这样的:

  1. 1. 先 SSH 登录服务器
  2. 2. 看一下程序日志
  3. 3. 查一下 Redis 数据
  4. 4. 再回到终端继续操作

如果 Redis 客户端是一个 独立 App,这个过程就会变成:

SSH 工具

Redis 客户端

再切回 SSH

工具之间不断切换。


把数据库操作放进 SSH 工作流

所以我后来更喜欢的一种方式是:

把数据库工具直接放进 SSH 客户端里。

比如在 DartShell 里面,我平时会这样用:

  • • 先 SSH 登录服务器
  • • 打开一个新的标签页
  • • 直接切到数据库

在数据库标签里,可以直接操作:

  • • MySQL
  • • PostgreSQL
  • • Redis

比如:

  • • 查询 key
  • • 查看过期时间
  • • 修改数据
  • • 批量浏览

用完之后关闭标签页,再继续回到 SSH。

整个过程会非常自然。


工具不一定要越多越好

很多时候我们习惯:

一个工具解决一个问题

但在实际开发中,很多操作其实都是围绕同一个工作流展开的。

比如:

  • • SSH
  • • 数据库
  • • 文件传输

如果这些工具能够在一个客户端里完成,其实效率会高很多。

至少对我来说,Dock 里面少一个 App,也会清爽不少。


如果你也在 macOS 上做开发,平时是怎么查看 Redis 数据的?

是用命令行,还是 GUI 客户端?