0
我正在使用redis.py處理項目,我將應用程序連接到Redis客戶端時工作,但使用StrictRedis失敗。Redis和StrictRedis的API有什麼區別?
所以,我想知道兩者之間的區別,但搜索沒有滿意的答案。
我的項目在這裏:https://github.com/kxxoling/librorum對不起中文註釋!
我正在使用redis.py處理項目,我將應用程序連接到Redis客戶端時工作,但使用StrictRedis失敗。Redis和StrictRedis的API有什麼區別?
所以,我想知道兩者之間的區別,但搜索沒有滿意的答案。
我的項目在這裏:https://github.com/kxxoling/librorum對不起中文註釋!
官方Redis的命令文檔中則詳細解釋每個命令的一個偉大的工作。 redis-py公開了兩個實現這些命令的客戶端類。
StrictRedis類嘗試遵守官方命令語法。
StrictRedis還具有沒有向後兼容性:
除了上述變動,Redis的類,StrictRedis的子類,將覆蓋其他幾個命令來提供與舊版本的Redis的向後兼容 - 吡咯:
LREM
:中num
和value
參數順序顛倒,使得 '民' 可以提供零的默認值。ZADD
:Redis指定value
之前的參數score
。當 正在實施,並且直到人們已經使用 後才被發現,這些被意外更換。 Redis的類預計的形式*args
:name1
,score1
,name2
,score2
,...SETEX
:逆轉time
和value
參數秩序。
所以,你應該堅持Redis
類,如果你已經使用redis-py
很長一段時間 - 它有一些命令參數的順序改爲似乎更Python(或哪怕是無意的)。
在這裏的源代碼(client.py:class Redis),你可以看到有什麼改變。
這意味着他們幾乎沒有聯繫? Redis適用於較老的Redis,而StrictRedis適用於新版本(從哪個版本開始)? – kxxoling 2015-02-09 06:24:06
@kxxoling他們幾乎是一樣的,只有微小的差異。我不確定從哪個版本中刪除了向後兼容性,但文檔和源代碼都包含了它。我更新了我的答案。 – 2015-02-09 10:48:28
Redis是StrictRedis的一個子類,所不同的是它提供的包裝方法。在我的情況下,我濫用zadd,爭論顛倒了。我真是一個愚蠢的人! – kxxoling 2015-02-09 12:11:13