Tag: redis

Nodejs Azure Rediscaching永远挂起并读取ECONNRESET错误

我创build了一个新的Azure Rediscaching,需要将近5分钟才能完成创build。 我正在使用node-redis包,这是我的代码 var client = redis.createClient( process.env.REDIS_PORT || 6379, process.env.REDIS_HOST || '127.0.0.1' ); if(process.env.REDIS_HOST) { client.auth(process.env.REDIS_KEY); } 是的,这些环境variables是正确设置,它只是挂了一段时间,并提出一个错误:Redis连接到mycache.redis.cache.windows.net:6380失败 – 读ECONNRESET。 现在,当我使用redis-cli尝试连接redis-cli -h myhost -p 6380 -a the-auth-key它只是挂在命令行上,似乎没有连接build立,但也没有错误。 这只是无所事事。 如果我改变端口等,我得到连接错误。 所以我现在想知道我在做什么错了? 我在另外一个地区创build了另一个rediscaching(我花了最大的99.9 SLA等)。 不过,没有连接是可能的。 任何帮助,将不胜感激。

将mysql的查询结果存储在redis中

我正在尝试使用redis来存储用户和天气的列表,或者不在线或离线,并将该信息显示给其他用户。 我相当新的节点,我相信我需要使用一个列表或sorting集。 当它到达console.log(答复); 行它只显示“对象” 我想我需要遍历查询的结果来build立列表,但我不太确定1)如何循环直接在服务器应用程序中的结果和2)如何build立基于该查询的列表或sorting集。 任何意见或build议将不胜感激。 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'users' }); var redis = require('redis') , client = redis.createClient(); connection.connect(); connection.query('SELECT * FROM user_profile', function(err, rows, fields) { if (err) throw err; client.set('string key', rows[0], redis.print); client.get("string key", function […]

在Heroku上的节点和Redis应用程序错误

我是Heroku&Node的新手,请耐心等待。 我部署了我的工作聊天应用程序(在本地主机上)到Heroku,但无法打开Heroku应用程序。 任何人都可以帮助我如何解决这个问题? 我看了一些类似的问题在stackoverflow和做heroku config:add REDISCLOUD_URL='redis_cloud_url'和heroku config:add NODE_ENV='production'但那些没有工作。 这是我的英雄日志。 2015-04-11T19:42:35.568690+00:00 heroku[api]: Deploy 0244dd7 by MYMAIL@gmail.com 2015-04-11T19:42:38.004491+00:00 heroku[web.1]: Starting process with command `node app.js` 2015-04-11T19:42:39.182617+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY) 2015-04-11T19:42:39.182639+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1 2015-04-11T19:42:39.793252+00:00 app[web.1]: events.js:85 2015-04-11T19:42:39.793258+00:00 app[web.1]: throw er; // Unhandled 'error' event 2015-04-11T19:42:39.793260+00:00 app[web.1]: ^ 2015-04-11T19:42:39.793262+00:00 […]

Redis pub / subdevise问题

我有一个像这样的Redis客户端: var redis = require("redis"); var client = redis.createClient(); client.config("SET","notify-keyspace-events", "KEA"); 使用第三行代码,现在configuration为侦听Redis键的设置和删除。 所以这个客户端充当订户。 但是,问题是我希望这个Redis客户端也能够重新发布它从Redis收到的信息,同一个Redis客户端不能同时作为订阅者和发布者。 所以看来我有两个select: 在同一个文件中使用第二个Redis客户端,充当发布者 只使用一个Redis客户端而不是两个Socket.io 它是否正确? 在这种情况下哪一个更好?

如何在多个服务器上扩展socket.io应用程序?

我已经读了很多关于custering,redis的东西,但我找不到任何真正的样本。 我有一个简单的socket.io应用程序,我需要将这个应用程序扩展到许多服务器。 看起来像socket.io和RedisStore是解决scheme。 有没有人有如何在许多服务器上使用socket.io的真实世界?

特拉维斯让我redis连接到本地:6379失败 – 连接ECONNREFUSED

我正在尝试使用Travistestingnode.js 模块 ,但是我得到的结果是“Redis连接到本地主机:6379失败 – 连接ECONNREFUSED”。 有人可以告诉我,我做错了什么? 最新版本位于: https : //travis-ci.org/luiselizondo/config-persistence/builds/65187913 谢谢

Kue worker with createClientFactory:只能使用订阅者命令

我正在努力让我的工人build立起来,发现了一些奇怪的东西。 如果我使用默认的kue redis连接创build我的队列,那么一切都很完美: var kue = require('kue') , redis = require('redis'); var q = kue.createQueue(); q.process('cypher', function(job, done){}); 工人完美地启动。 但是,如果我尝试覆盖默认的redis连接与我自己的我得到一个 错误:在用户模式下连接,只能使用用户命令 当执行命中下面的q.process函数时: var kue = require('kue') , redis = require('redis'); var redisClient = redis.createClient(); var q = kue.createQueue({ redis: { createClientFactory: function(){ return redisClient; } } }); q.process('cypher', function(job, done){}); 这似乎没有任何意义。 我想也许我犯了一个经典的asynchronous错误,但即使是以下是我得到同样的错误。 任何见解? redisClient.on('connect', function […]

Redis pub / sub – 同一个进程监听一个通道

我有一个单独的Node.js服务器 – 我希望进程能够监听从它自己发送的消息 – 这仅用于testing。 我遇到的问题是,当向相同的进程发布消息时,用户似乎根本没有收到它。 我有这个设置: var redis = require('redis'); var rcPub = redis.createClient(); var rcSub = redis.createClient(); var message = String('testing123'); rcSub.subscribe('redis_channel@test_overall_health'); rcSub.on('message', function (channel, msgs) { console.log(channel,msgs); }); rcPub.publish('redis_channel@test_overall_health', message); 我有一个redis客户端充当订户,一个作为发布者,这是您必须这样做的方式,但由于某种原因,邮件没有收到。 是否有一个限制,一个进程不能听它发布的消息? 这似乎没有道理。 我可以validation这个代码或多或less是正确的,因为侦听同一个通道的其他进程收到了这个消息。

Redis客户端(“准备”)事件

我正在使用Node.js的Redis NPM库 – 我可以像这样监听连接“就绪”事件 var client = require('redis).createClient(); client.on('ready', function () { client.keys('*', function (err, keys) { if (err) { log.error(err); } else { for (var i = 0; i < keys.length; i++) { createLocalDataMap(keys[i]); } } }); }); 但是,如何查询Redis是否准备好,而不是在我准备好处理它之前可能会触发的事件? 我想我可以放弃现成的事件,只是做一个查询,然后等待回应,但有没有更好,更安全和更复杂的方式? 换句话说,我很可能必须写一个这样的函数: var isReady = false; client.on('ready', function(){ isReady = true; }); function doSomethingMuchLater(){ if(isReady){ […]

npm模块支持Redis Sentinel作为会话存储

我将在我的Node js(express)Web应用程序中使用redis sentinel集群作为会话存储。 你可以请列出最好的NPM模块做这个。