我在我的nodejs服务器中使用Redis,与浏览器html / js应用程序通信。在我无法识别的条件下,我的服务器卡住了。它不会抛出任何错误,保持活力和响应,但无法从Redis获取值。这是(简化版)与Redis建立连接的方式。
var Stash = require('redis'),
Sockjs = require('sockjs')
stash = Stash.createClient(some_port,some_host);
sockjs = Sockjs.createServer();
var Instances = {
get: function (id, cb) {
stash.get('something_' + id, cb)
}
sockjs = Sockjs.createServer();
sockjs.on('connection', function(socket) {
socket.on('data', function(data) {
var id = somecorrectid;
Instances.get(id, function(err, instance) { /*Here the magic happens*/ }
}
}
现在,这在正常条件下完美运行。 当问题发生时,最后一个括号之间的代码不再被执行,无论我再次触发多少次触发代码片段的事件(即通过套接字发布的数据)以及来自哪个客户端。与此同时,Redis还活着,摇摆不定。 Redis-cli正在回应。密钥搜索' get'存在,形式正确。我的服务器仍然能够正确地将密钥写入Redis,但似乎无法再读取它们。这对我来说没有任何意义,很难调查或有更多的信息,因为我无法解决这个问题。任何线索?