如果你像我一样,比起 Redis 的各种 GUI 客户端,更喜欢命令行客户端的话,可以试试我写的 IRedis。
安装: pip install iredis
Source code: https://github.com/laixintao/iredis/
目前支持以下 Feature:
- Ctrl - C 取消当前命令,Ctrl - D 退出;
- 选择历史命令(类似 fish );
- 自动补全 Redis 命令;
- 以及根据历史的参数补全命令的参数,比如之前使用了一个 key,或者
keys *
命令返回了 key 列表。当下次输入SET
命令的时候,会根据 LRU 的逻辑自动补全 key ; - 在最底下的状态栏提示命令的用法,可使用的 Server 版本,时间复杂度等等;
- 不是一个全屏的 TUI 客户端,只是一个命令行客户端;
新手模式(--newbie
),友好的提示:
内置 HELP
,可以查看命令的手册(文本来自 redis-doc):
PUBSUB 可以解析成单行 Stream 显示,取消的时候自动发送 UNSUBSCRIBE
( redis-cli 的行为是直接退出的)
LUA 脚本也有高亮
可以对一些命令的 response 解析,比如 slowlog:
HASH 类型也会显示成 key-value pairs,redis-cli 是直接显示成 list 的,要自己对应奇数是 key,偶数是 value。
还有其他一些 feature,大家可以自己下载尝试。
不足
- 我是用 prompt toolkit 这个库做 UI 框架的,这个库基于正则解析语法,所以在 IRedis 启动的时候,会有一个编译正则的时间(我的机器大约 8s )。正则编译结束之前,语法高亮和补全不会激活,但是 IRedis 可以和 redis-cli 一样正常使用。(虽然也有用户反映编译正则期间,打字有点卡顿,2.2GHz 的 CPU )。这个过程要编译上千个正则,我想过一些方法解决这个性能问题,现在还没解决。。。
- 还有 stream 相关的命令没有支持,除了 stream 其他 200 多个命令都是完美支持的;
- 这是一个第三方的客户端,不会比 redis-cli 跟上 redis-server 的 feature 更及时。
但是我觉得比起 IRedis 的高亮和补全,这些不足还是可以接受的。欢迎大家帮助提建议和代码。