我正在运行 Redis 并使用 ezmobius 的 Redis gem[1] 从 Ruby 进行连接。
由于 Redis 返回奇怪的结果,我的 Rails 应用程序会定期(大约一天一次)出现一系列异常。
它们通常由这样的异常触发:
Redis::ProtocolError: Protocol error, got '3' as initial reply byte
或
Redis::ProtocolError: Protocol error, got '9' as initial reply byte
或者有时
Errno::EAGAIN: Resource temporarily unavailable - Timeout reading from the socket
通常需要重新启动我的 Rails 服务器才能解决连接问题。我正在运行 Fedora Core 8、Rails 2.3.8、Redis gem 2.0.3。我已经安装了 system_timer gem。有人知道如何阻止这些错误吗?
[1] Redis gem
最佳答案
我刚刚在我的后台工作人员中注意到了同样的事情,他们将任务存储在 Redis 中的队列中,并通过 Redis 发布/订阅进行通信。谷歌结果表明,如果您从多个线程使用相同的 Redis 对象,就会发生这种情况……我不确定我的应用程序是否属于这种情况,我将不得不对此进行调查(但我确实有线程) ).
关于ruby-on-rails - Redis:奇怪的协议(protocol)/网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711953/