前言
我有一個朋友, 在我剛發完上面那篇限流功能實現之後問我, 爲啥沒有寫用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插件啊, 不然的話命令也執行不了