1
當我發射的Redis-PY的bgsave()
命令,返回值是False
,但我敢肯定的執行是成功的,因爲我已經lastsave()
檢查。爲什麼redis-py的bgsave()命令在成功執行後返回False?
但是,如果我用save()
的返回值將成功執行後True
。
任何人都可以請解釋一下False
指示bgsave()
?不知道它是否與bgsave()
在後臺執行有關。
當我發射的Redis-PY的bgsave()
命令,返回值是False
,但我敢肯定的執行是成功的,因爲我已經lastsave()
檢查。爲什麼redis-py的bgsave()命令在成功執行後返回False?
但是,如果我用save()
的返回值將成功執行後True
。
任何人都可以請解釋一下False
指示bgsave()
?不知道它是否與bgsave()
在後臺執行有關。
由於保爾Anossov,讀client.py的代碼後,我發現,從2個命令(BGSAVE和BGREWRITEAOF)應答沒有從字節轉換爲str,這導致的問題在Python 3.
要解決此問題,請將lambda r: r ==
更改爲lambda r: nativestr(r) ==
,以獲取RESPONSE_CALLBACKS
中的這兩個命令。
False表示redis-py收到「背景保存已啓動」以外的內容作爲響應。嘗試使用redis-cli發佈BGSAVE,並查看redis的響應是什麼。 –
@PavelAnossov在redis-cli中運行'BGSAVE'會正確地啓動「後臺保存」。 – zuhao
然後編輯'redis/client.py',在'parse_response'方法(第372行)的'response = connection.read_response()'後面加上'print response'。當你在那裏時,看看RESPONSE_CALLBACKS字典(第221行)。看看它是否確實希望「背景保存開始」響應bgsave。如果沒有,那麼你的redis和redis-py版本是不匹配的。 –