Tag: node redis

node-redis无法通过twemproxy连接到redis实例

问题 通过redis-cli直接连接到我的twemproxy将正确代理我到redis没有任何问题/断开连接。 但是,当我使用node-redis连接到twemproxy时,出现以下错误: [Error: Redis connection gone from end event.] 跟踪如下: Error: Ready check failed: Redis connection gone from end event. at RedisClient.on_info_cmd (/home/vagrant/tests/write-tests/node_mo dules/redis/index.js:368:35) at Command.callback (/home/vagrant/tests/write-tests/node_modules/r edis/index.js:418:14) at RedisClient.flush_and_error (/home/vagrant/tests/write-tests/nod e_modules/redis/index.js:160:29) at RedisClient.connection_gone (/home/vagrant/tests/write-tests/nod e_modules/redis/index.js:474:10) at Socket.<anonymous> (/home/vagrant/tests/write-tests/node_modules /redis/index.js:103:14) at Socket.EventEmitter.emit (events.js:117:20) at _stream_readable.js:919:16 at process._tickCallback (node.js:419:13) 无论是否运行redis服务器,都会发生这个错误,所以我非常肯定它与node-redis和twemproxy是如何交互的。 或者根本不需要互动。 我的问题 究竟发生了什么? 背景信息 我有一个简单的testing设置,如下所示: […]

使节点Redis get()同步

我刚刚开始实施与节点的Redis。 在执行身份validation方法期间,我需要检查令牌是否存在于redis中,如果不是在redis中更新新令牌,并且在我的mongo数据库中,则需要编写一个大的callback块而不正确地获取结果。 我们怎样才能使redis得到callback的红色。 我们怎样才能使它同步。 示例代码如下。 module.exports.authenticate = function(request, response) { var reply = {}; if(UserSchema) { var UserModel, attributes; /** Registering User Model; **/ mongoose.model('user', UserSchema); UserModel = mongoose.model('user'); attributes = request.params; UserModel.findOne(attributes, "_id name email token", function(error, user) { if(!error && user) { var token; //delete user.password; token = user.token; /** Checking token exists […]

NodeJS:我无法使express-connect连接到redis

这是我的代码: var express = require('express'); var RedisStore = require('connect-redis')(express); 这是我得到的错误: RedisStore.prototype.__proto__ = Store.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at module.exports (/home/cherif/Bureau/Twimbee/server/gamma/node_modules/connect-redis/lib/connect-redis.js:96:41) at Object.<anonymous> (/home/cherif/Bureau/Twimbee/server/gamma/index.js:2:42) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:902:3 请帮忙

Socket.io redisstore

使用socket.io redisstore适配器/存储(?),是否有可能“查看”所有客户端,并“select”即使是不直接连接到您的socket.io服务器的客户端? 还是仅限于socket.io的“房间”function? 举一个实际的例子,同一个聊天室中的两个用户连接到两个不同的socket.io节点,如果你已经有了redisstore适配器/存储,就可以从一个用户到另一个用户耳语一个单一的stream程/服务器实现? 我问的原因是我目前还没有处于我的项目的开发阶段,过度关心扩展(我也没有时间深入了解node.js缩放后面的概念,这与我看起来完全不同曾经(现在第一个完整的node.js项目)), 但我不想build立一个基础设施,结果是不可能的规模。

与node.js,socket.io和redis一对一的聊天应用程序

我目前在node.js和socket.io中有一个聊天应用程序(一对一)。 随着我网站上的用户越来越多,我想在我的聊天应用程序中引入redis。 这是我目前的应用程序的一个小例子: // all requires and connections io.sockets.on('connection', function(socket) { socket.on('message', function(msg) { // code to get receiverssocket io.sockets.sockets[receiverssocket].emit('message', {"source": msg.sendersusername,"msg": msg.msg}); }); }); 现在,我正在试图find如何使用redis来做这个例子,但我找不到一个与redis聊天的例子。 我只能find消息发送给所有用户的例子。 这是我看的一个例子 Simple Chat Application Using Redis, Socket.io, and Node.js 我认为这样做的一种方式是为每个用户接收消息创build通道,但这会导致数千个通道。 任何帮助我怎么能做到这一点? 编辑:添加一些代码 io.sockets.on('connection', function (client) { sub.on("message", function (channel, message) { console.log("message received on server from publish "); client.send(message); […]

使用redis的NodeJS – 用hiredis vs没有安装?

我将redis集成到我的NodeJS服务器应用程序中,并试图找出是否使用hiredis命令安装node_redis。 我假设安装它的选项不可用,如果它在某种程度上没有用处。 与此同时,node_redis(https://github.com/mranney/node_redis)的github页面清楚地表明,升级到nodeJS的较新版本可能会导致添加hiredis选项的问题。 有人可以列出增加雇佣与否的不成文的利弊吗? 在C库中有多less性能提升?

使用node-redis删除redis中的密钥数组

我有像“[aaa”,“bbb”,“ccc”]键的数组,所以我想要使用一个命令从redis中删除所有这些键。 我不想迭代使用循环。 我读了关于redis命令DEL和在terminalredis客户端它工作,但使用nodejs它不起作用 Redisclient.del(tokenKeys,function(err,count){ Logger.info("count is ",count) Logger.error("err is ",err) }) 其中tokenKeys = [“aaa”,“bbb”,“ccc”],这个代码是工作,如果我发送一个键,如tokenKeys =“aaa”

如何将javascript数组保存为redis列表

以下代码将整个数组保存为redis列表中的单个值。 但我想单独保存数组值。 我该怎么做? PS对于英语不好,真抱歉。 var redis = require('redis'), client = redis.createClient(); var arr = [1,2,3]; client.rpush('testlist',arr);

如何使用节点在redis中存储二进制对象?

我正在尝试在redis中保存一个二进制对象,然后将其作为图像提供回来。 这里是我用来保存数据的代码: var buff=new Buffer(data.data,'base64'); client.set(key,new Buffer(data.data,'base64')); 以下是转储数据的代码: client.get(key,function(err,reply){ var data = reply; response.writeHead(200, {"Content-Type": "image/png"}); response.end(data,'binary'); }); 数据的前几个字节似乎已损坏。 幻数是不正确的。 做了一些实验: 当我做到以下几点: var buff=new Buffer(data.data,'base64'); console.log(buff.toString('binary')); 我得到这个: 0000000:c289 504e 470d 0a1a 0a00 0000 0d49 4844 当我这样做 var buff=new Buffer(data.data,'base64'); console.log(buff); 我得到以下内容: 缓冲液89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 […]

Redis由一名客户观看MULTI EXEC

我在RedisOnGo + node_redis上使用NodeJS + Express + Redis作为客户端。 我期望很多的并发性,所以试图testingWATCH。 这个例子不包含Express,只是必要的东西。 var redis = require("redis") var rc = redis.createClient(config.redis.port, config.redis.host) rc.auth(config.redis.hash, function(err) { if (err) { throw err } }) rc.on('ready', function () { rc.set("inc",0) for(var i=1;i<=10;i++){ rc.watch("inc") rc.get("inc",function(err,data){ var multi = rc.multi() data++ // I do know I can use rc.incr(), this is just for example […]