大家好~我是
米洛
!
我正在從0到1打造一個開源的接口測試平台, 也在編寫一套與之對應的完整教程
,希望大家多多支持。
歡迎關注我的公眾號測試開發坑貨
,獲取最新文章教程!
回顧
上一節我們牛刀小試
,編寫了redisManager,並且成功執行了redis命令。
那這一節,就讓我們來折騰下在線執行Redis命令。
由於某些特定的原因,在使用aredis的時候有了一些不好的體驗,主要是以下幾個方面, 所以我打算棄坑了。
- get和set操作沒有支持中文,非常難受
- 對於報錯信息不是那么友好,因為我這邊出現了一個連接出錯的問題,發現對方的error是ConnectionError,里面毫無內容
- 之前也說了,遷移成本巨低,所以我們可以完美切回用戶最多的同步庫(如果踩坑也有人一起想辦法)
安裝redis和redis-py-cluster
pip3 install redis redis-py-cluster
改寫Manager類
其實要改變的並不多,看下git的改動就知道了:
- 修改引入路徑
- 修復之前的bug
- 改寫cluster
完善在線執行命令的方法
這樣我們的后端接口就編寫完畢了,因為我們想做的是類似redis-cli的功能。
-
尋找前端組件
我們需要一個web版本的終端,所以我在github尋找了很久,找到了這樣一款質量還不錯的:
- 最終效果
還是比較丑,左側是現有的redis連接配置,右側是類似redis-cli的客戶端頁面。
在右側執行語句以后,就會調用我們剛才編寫的redis在線執行接口
。
湊合能用就行。給大家看看使用gif:
目前只支持基礎的操作,包括常見的:
get
set
hget
hset
hgetall
等等
自動更新Redis
每當配置有變更的時候,我們都需要變更RedisManager中的數據
,所以我們之前為之編寫了Refresh方法。
我們修改update/delete方法:
這里的background_tasks是來自fastapi的后台任務,如果大家了解go的話,這里就等於:
func test() {
// 業務邏輯
result := xxx
go RedisManager.delete()
return result
}
其實就是一個后台任務,咱們的主體方法可以直接return了。
今天的內容就到這了,下期我們解決APScheduler重復執行
的問題。