大家好~我是
米洛
!
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程
,希望大家多多支持。
回顾
上一节我们牛刀小试
,编写了redisManager,并且成功执行了redis命令。
那这一节,就让我们来折腾下在线执行Redis命令。
由于某些特定的原因,在使用aredis的时候有了一些不好的体验,主要是以下几个方面, 所以我打算弃坑了。
- get和set操作没有支持中文,非常难受
- 对于报错信息不是那么友好,因为我这边出现了一个连接出错的问题,发现对方的error是ConnectionError,里面毫无内容
- 之前也说了,迁移成本巨低,所以我们可以完美切回用户最多的同步库(如果踩坑也有人一起想办法)
安装redis和redis-py-cluster
pip3 install redis redis-py-cluster
改写Manager类
其实要改变的并不多,看下git的改动就知道了:
- 修改引入路径
![](https://img.haomeiwen.com/i6053915/b54c8bbc970a7058.png)
- 修复之前的bug
![](https://img.haomeiwen.com/i6053915/017938e1606d7832.png)
- 改写cluster
![](https://img.haomeiwen.com/i6053915/3992d2c703e19e7b.png)
完善在线执行命令的方法
![](https://img.haomeiwen.com/i6053915/fd9b449a3fddbea9.png)
这样我们的后端接口就编写完毕了,因为我们想做的是类似redis-cli的功能。
-
寻找前端组件
我们需要一个web版本的终端,所以我在github寻找了很久,找到了这样一款质量还不错的:
![](https://img.haomeiwen.com/i6053915/cfa25de3266903af.png)
- 最终效果
![](https://img.haomeiwen.com/i6053915/eaca73b4b9f31b33.png)
还是比较丑,左侧是现有的redis连接配置,右侧是类似redis-cli的客户端页面。
在右侧执行语句以后,就会调用我们刚才编写的redis在线执行接口
。
凑合能用就行。给大家看看使用gif:
![](https://img.haomeiwen.com/i6053915/893a68dfd02dcffc.gif)
目前只支持基础的操作,包括常见的:
get
set
hget
hset
hgetall
等等
自动更新Redis
每当配置有变更的时候,我们都需要变更RedisManager中的数据
,所以我们之前为之编写了Refresh方法。
我们修改update/delete方法:
![](https://img.haomeiwen.com/i6053915/4b3e92a1dbd0052a.png)
这里的background_tasks是来自fastapi的后台任务,如果大家了解go的话,这里就等于:
func test() {
// 业务逻辑
result := xxx
go RedisManager.delete()
return result
}
其实就是一个后台任务,咱们的主体方法可以直接return了。
![](https://img.haomeiwen.com/i6053915/1c5bc7c08808554a.png)
今天的内容就到这了,下期我们解决APScheduler重复执行
的问题。
网友评论