好用的Redis 客户端工具有几个? 这里推荐两三个
微信公众号:数据库杂记 个人微信: iiihero
我是iihero. 也可以叫我Sean.
iihero@CSDN(https://blog.csdn.net/iihero)
Sean@墨天轮 (https://www.modb.pro/u/16258)
数据库领域的资深爱好者一枚。
水木早期数据库论坛发起人 db2@smth,早期多年水木论坛数据库版版主。
国内最早一批DB2 DBA。前后对Sybase ASE及SQLAnywhere, PostgreSQL,
HANA, Oracle, DB2, SQLite均有涉猎。曾长期担任CSDN相关数据库版版主。
SAP数据库技术专家与开发架构师,PostgreSQL ACE.
代表作有:<<Java2网络协议内幕>> <<Oracle Spatial及OCI高级编程>>
<<Sybase ASE 15.X全程实践>>
兴趣领域:数据库技术及云计算、GenAI
业余专长爱好:中国武术六段 陈式太极拳第13代传人(北京陈式太极拳第5代传人)
职业太极拳教练,兼任北京陈式太极拳研究会副秘书长。
如果想通过习练陈式太极拳强身健体,也可以与我联系。
前言
记得前边为了使用windows上的命令行客户端去连接Cloud上边的 hyperscale Redis, 很是费了半天劲,才折腾出一个可以连接的支持TlS的版本。里边要用到msys + mingw,而且接连几个坑。详见:Redis 7.0.X 在Windows下编译支持TLS连接,遇坑埋坑
那么有没有单独的GUI式的客户端工具可以连接呢?如果有可能,将两者结合起来用,看着也是蛮不错的。
实作与分析
1、直接编译后的redis-cli命令行
这个不多说, 直接:
redis-cli -c -p <port> -a <password> --tls --no-auth-warning
其中:
- -c Enable cluster mode (follow -ASK and -MOVED redirections).
- -a 指定密码
- -tls 暗示要使用SSL
- --no-auth-warning 相关警告信息不输出
这个自行编译出来的目录内容大概如下:
c:\tools\redis\bin>dir
2023-07-15 12:50 AM 2,982,622 msys-2.0.dll
2023-06-01 07:17 AM 4,523,484 msys-crypto-3.dll
2023-06-01 07:17 AM 610,496 msys-ssl-3.dll
2023-07-30 04:19 PM 997,529 redis-benchmark.exe
2023-07-30 04:19 PM 7,883,673 redis-check-aof
2023-07-30 04:19 PM 7,883,673 redis-check-rdb
2023-07-30 04:19 PM 1,155,751 redis-cli.exe
2023-07-30 04:19 PM 7,883,673 redis-sentinel
2023-07-30 04:19 PM 7,883,673 redis-server.exe
2023-07-10 07:39 PM 106,545 redis.conf
2023-07-10 07:39 PM 14,005 sentinel.conf
实际上也就多了三人依赖于msys运行时库的文件:
msys-2.0.dll, msys-crypto-3.dll, msys-ssl-3.dll。
而redis-cli的基本用法,可以完全参考Redis官方文档。
2、RedisInsight V2客户端
整个项目的地址在:https://github.com/RedisInsight/RedisInsight/wiki/How-to-build-and-contribute
它会教我们如何build和启动运行。也可以从下边的地址直接下载:
https://redis.com/redis-enterprise/redis-insight/#insight-form
上边“吹牛”说是最好的Redis GUI工具。在使用Redis或Redis Stack进行开发时,将您的生产力提升到一个新的水平!使用RedisInsight可视化和优化Redis数据。RedisInsight是一个强大的桌面管理器,为Redis和Redis Stack提供了一个直观高效的UI,并在一个功能齐全的桌面UI客户端中支持CLI交互。
不过呢,很遗憾,它支持不了我要的通过CF ssl连接方式去连接hyperscaler上的Redis.
image-20230806082055173
Test Connection的时候,直接给我报了个:Server closed the connection。
但是简单的Redis连接,还是可以的。相信大部分的Redis,它都能应付过去。界面还是相当漂亮的。
image-20230806082255584
连接上以后,它能把key的类型,值,期限,以及value的真实大小都给你显示出来,一目了然。简单的管理,相信没有问题。
我在测一个值为132MB,右边显示的时候,OOM了。
然后,它有一个Bulk Action:
Delete好理解。还有一个Upload Action,就是直接传输一个Redis批处理的文件:
image-20230806083208074
感觉这个功能也还行。凑合着用。小遗憾的地方,是不是没有一个批量导出的功能?呵呵。
简单的常规的操作功能,它还是不错的。
但是,有一个地方还是值得称赞的,就是它的系统监控与分析功能,看看下图,直接new一个report之后的效果:
image-20230806083638477
基于此,把这个工具列到这里,结合起来用。
3、Another Redis Desktop Manager
这个是咱们国人开发的。项目地址在:https://github.com/qishibo/AnotherRedisDesktopManager
经过几次试验,发现它居然能支持到Cloud上边的Hyperscaler Redis的连接。手动建立Tunnel之后,能连接上。
连接
image-20230806084319866
管理界面效果图
image-20230806084508681
界面确实难看,但是功能“很强大”,可以导入导出。这个对于一般的开发应用管理来说,非常实用。
分析功能也有:就是通过连接节点的"All Redis Info"来展示。稍微弱了一点儿。
在实际验证的过程中,也发现一些问题,必须通过别的手段来解决。
如果值比较大,比如100多兆,几条数据就会让export一直hang在那里,不能工作。
但总体来说,这个客户端工具,还是蛮强大的。平日里可以用它来操作常见的内容。
4、其它
当然,因为数据整理的需要,也试过基于Ruby的redis-dump, 详见:
https://github.com/delano/redis-dump
Ruby的生态不是很好,尤其是在Windows下边的使用,同样要搞到:msys + mingw,最后编译还出了问题。这个redis-dump好像也是国人开发的。不知道现在用的人多不多,它支持的环境还是比较有限。
感觉,如果以上这些工具都达不到自己的目的的话,不如自己手写DIY一个,可以即时更改代码进行调试。
最方便可能就是使用redis-python。直接python3 + pip install redis,所有需要的依赖关系全都替你搞定。连接的代码片段也简单:
#!/usr/bin/python
import redis
rc = redis.Redis(host='localhost', port=1167, ssl=True, ssl_cert_reqs="none", password='xxxxxxxxxxxxxxxxKuULfsbBPCo')
rc.ping()
# print(rc.keys);
for i in range(10000):
rc.set('{0:d}'.format(i), 'value_{0:d}'.format(i))
print('Value {0:d} done'.format(i))
print('finished redis operation');
这片代码,就是往Redis里头,快速添加10000个key的小片段代码。连接信息也很直接:
ssl=True, ssl_cert_reqs="none", password='xxxxxxxxxxxxxxxxKuULfsbBPCo'
指定用SSL,并且不需要证书,但是要提供密码。
在前边的GUI工具以及redis-dump管理导入导出数据不能工作时,不防自己DIY一把,还可以趁机优化一下代码,提高下性能。
总结
Redis作为一款优秀的开源K/V数据库,挑选合适的GUI客户端工具还是蛮重要的。通常情况下redis-cli能满足绝大多数需求,但是在Cloud环境下, --rdb之类的备份功能用不了。你不得不求助于一些工具,有时候,也不得不自己DIY一下。自己动手,丰衣足食。
Cloud厂商有的确实是为了将用户引导向自己的基础设施,变了各种方法来诱导:
- 备份,让你直接备份至S3存储,都在它的控制之下。你把S3的数据再download下来,也需要自己进行转换。
- 导入,也是用它的格式。你自己没办法自由自主的控制。
GUI工具:还是推荐上边的两款:RedisInsight V2以及AnotherRedisDesktopManager
命令行工具:有下载的就下载安装,不能的,就自己编译一个。另外,Redis-python是一个不错的客户端库。基本上你想干的都能干。Redis在NodeJs和Go、Rust上边的接口库也不错。目前就是Redis-java的比较乱,要支持各种Redis的形式,需要进行不同程度的适配。
(Redis cluster, SSL support, Sentinel等等)。
更多推荐
所有评论(0)