【发布时间】:2012-03-22 07:23:20
【问题描述】:
来自node-redis github 上的文档:
注意:您对 client.auth() 的调用不应在 ready 中 处理程序。如果你做错了,客户端会发出一个错误 看起来像这样 错误:就绪检查失败:ERR 操作未 允许
这是否意味着当 client.auth 执行传递给它的回调时,可以安全地假设此连接也已准备好执行普通命令?如果不是,那么是否应该兼顾两个回调函数,确定第二个调用哪一个?
【问题讨论】:
来自node-redis github 上的文档:
注意:您对 client.auth() 的调用不应在 ready 中 处理程序。如果你做错了,客户端会发出一个错误 看起来像这样 错误:就绪检查失败:ERR 操作未 允许
这是否意味着当 client.auth 执行传递给它的回调时,可以安全地假设此连接也已准备好执行普通命令?如果不是,那么是否应该兼顾两个回调函数,确定第二个调用哪一个?
【问题讨论】:
当不需要 auth 时,node-redis 会向服务器发送 INFO 以检测它何时准备就绪,然后触发 ready 事件(请参阅https://github.com/mranney/node_redis)。
当需要 auth 时,看起来 redis 只会在 auth 完成后才开始接受命令(请参阅http://redis.io/commands/auth)。
所以我要做的是在不进行身份验证时响应“就绪”事件并在身份验证时响应身份验证回调(可能在创建客户端时使用了{no_ready_check: true})。
【讨论】: