python調用redis-cell(CL.THROTTLE)

前言

我有一個朋友, 在我剛發完上面那篇限流功能實現之後問我, 爲啥沒有寫用python調用redis-cell的方法, 在網上也沒有找見案例, 我瞅瞅還真是, 機會來了, 可以水一篇文章
在這裏插入圖片描述
其實實現也很簡單, 只不過因爲這個要用到reids-cell插件, 用的人不是很多, 所以官方沒有提供對應的sdk而已, 但是, 上帝關了一扇門, 就一定會在給你留一扇窗, 畢竟都得恰飯的嘛
安裝過程就不寫了啊, 網上教程太多了, 自己玩的話可以看我上篇限流文章, 有用docker部署redis-cell的教程

正文

寫個連接redis的腳本, 隨便找個命令跳進redis源碼(redis/client.py),
在這裏插入圖片描述
你就會發現所有的命令執行都調用的是self.execute_command 這個方法,看看這個方法裏面幹了什麼
在這裏插入圖片描述
在這裏插入圖片描述
就是發送執行命令給redis服務端, 這不就好辦了, 我直接發送CL.THROTTLE 這個命令不就行, 而且也有提供了主動調用execute_command的sdk, 理論上是這樣, 行不行還得試一下

import redis

client = redis.Redis(host="127.0.0.1", port=6379)
print(client.execute_command('CL.THROTTLE', "user:api", 15, 10, 20, 5))

# 返回 [0, 16, 11, -1, 10]

答案是可以的, 前提是必須需要安裝好redis-cell插件啊, 不然的話命令也執行不了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章