大家好~我是
米洛!
我正在從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重復執行的問題。
