【发布时间】:2013-01-20 05:05:26
【问题描述】:
当我触发 redis-py 的bgsave() 命令时,返回值为False,但我很确定执行成功,因为我已经检查过lastsave()。
但是,如果我使用save(),成功执行后返回值将是True。
谁能解释一下False 对bgsave() 的含义?不确定它是否与 bgsave() 在后台执行有关。
【问题讨论】:
-
False 表示 redis-py 收到的响应不是“后台保存已启动”。尝试使用 redis-cli 发出 BGSAVE,看看 redis 的响应是什么。
-
@PavelAnossov 在 redis-cli 中运行
BGSAVE会正确显示“后台保存已启动”。 -
然后编辑您的
redis/client.py,在parse_response方法中的response = connection.read_response()之后添加print response(第372 行)。当您在那里时,请查看 RESPONSE_CALLBACKS 字典(第 221 行)。查看它是否确实期望“后台保存已启动”以响应 bgsave。如果不是,那么你的 redis 和 redis-py 版本不匹配。 -
看起来 lambda 应该是
nativestr(r) == 'Background saving started'并且您在 redis-py 中发现了一个错误。 -
@PavelAnossov 是的~你很快!我只是在 github 上发送一个拉取请求。非常感谢您将我指向 client.py 的代码。干杯!