IRedis: 一个支持语法高亮和自动补全的 Redis 命令行客户端

2020-01-03 15:08:34 +08:00
 scriptB0y

如果你像我一样,比起 Redis 的各种 GUI 客户端,更喜欢命令行客户端的话,可以试试我写的 IRedis。

安装: pip install iredis

Source code: https://github.com/laixintao/iredis/

目前支持以下 Feature:

新手模式(--newbie),友好的提示:

内置 HELP,可以查看命令的手册(文本来自 redis-doc):

PUBSUB 可以解析成单行 Stream 显示,取消的时候自动发送 UNSUBSCRIBE ( redis-cli 的行为是直接退出的)

LUA 脚本也有高亮

可以对一些命令的 response 解析,比如 slowlog:

HASH 类型也会显示成 key-value pairs,redis-cli 是直接显示成 list 的,要自己对应奇数是 key,偶数是 value。

还有其他一些 feature,大家可以自己下载尝试。

不足

  1. 我是用 prompt toolkit 这个库做 UI 框架的,这个库基于正则解析语法,所以在 IRedis 启动的时候,会有一个编译正则的时间(我的机器大约 8s )。正则编译结束之前,语法高亮和补全不会激活,但是 IRedis 可以和 redis-cli 一样正常使用。(虽然也有用户反映编译正则期间,打字有点卡顿,2.2GHz 的 CPU )。这个过程要编译上千个正则,我想过一些方法解决这个性能问题,现在还没解决。。。
  2. 还有 stream 相关的命令没有支持,除了 stream 其他 200 多个命令都是完美支持的;
  3. 这是一个第三方的客户端,不会比 redis-cli 跟上 redis-server 的 feature 更及时。

但是我觉得比起 IRedis 的高亮和补全,这些不足还是可以接受的。欢迎大家帮助提建议和代码。

4541 次点击
所在节点    分享创造
7 条回复
zxCoder
2020-01-03 16:51:59 +08:00
(只会 set 和 get 的我应该用不上了
Kilerd
2020-01-03 16:53:54 +08:00
新手模式好评
scriptB0y
2020-01-03 17:43:44 +08:00
@zxCoder get 和 set 也会补全 key 的呀 哈哈
guyskk0x0
2020-01-03 18:53:23 +08:00
想到个方案:正则编译后 pickle 保存到磁盘,这样第二次启动就不用编译了。或者在安装时就编译并持久化。
scriptB0y
2020-01-03 19:39:37 +08:00
@guyskk0x0 是的 这个我也尝试了。这样的问题是,re 是 c 语言写的,load 二进制本身开销就很大了,我发现 load 的速度跟编译的速度是一样的……
deplives
2020-01-03 21:32:50 +08:00
有种 mycli 的感觉 先反手给个赞
scriptB0y
2020-01-04 09:39:19 +08:00
@deplives 用的是同一个补全框架

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/634789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX