Tag: node redis

将CSV数据上传到Redis

我有一个1000行,大约15列的CSV文件。 我打算将每行存储为一个简单的JSON对象作为Redis值,并将CSV文件的行号存储为Redis关键字。 但是,一旦我开始向Redis上传多个CSV文件,在数据库中区分一个CSV文件和另一个CSV文件的最佳方法是什么? 不是Redis只是除了不同的Redis数据库实例本身之外没有其他大型结构的键值吗? 我知道Redis在内存中,但即使如此,如果您有数百万条logging,那么search所需的密钥效率会不是有点低下? 我不明白。 如果我上传了1百万个CSV文件,每个文件有1000行,那么就有10亿条logging要search,即使是内存数据库也是如此。 我应该以另一种方式来做。 我正在寻找一种方法,以高效且合理的方式在Redis中表示每个CSV文件,其中每个CSV文件行都有自己的唯一键,Redis值将是列标题和数据。 我如何做到这一点? 一个解决scheme将是每个键代表整个CSV文件,但我期待着看看是否有另一种select。

节点redis promisification使用蓝鸟

我试图使用node-redis包的承诺,但我不能使用on.connect()方法。 var redis = require("redis"); var client = redis.createClient(); bluebird.promisifyAll(redis.RedisClient.prototype); bluebird.promisifyAll(redis.Multi.prototype); // callback version app.get('/redis', function(req, res) { client.set("foo_rand000000000000", "some fantastic value", function(err, reply) { if (err) { console.log(err); } else { console.log(reply); } res.end(); }); }); // promisified version app.get('/redis', function(req, res) { return client.setAsync("foo_rand000000000000", "some fantastic value").then(function(return) { console.log(return); // returns OK client.quit(); […]

如何在redis上命名空间键以避免名称冲突?

我想使用redis来存储一些我自己的键值对,但是我的一些模块已经使用它。 会话数据的redis快速会话存储,以及套接字io的redis适配器。 所以我的问题很简单,我怎么能创build或指定一个数据库/命名空间来存储我自己的密钥没有关键的冲突? 我正在使用node-redis驱动程序。

ZINTERSTORE与node_redis的dynamic参数

我试图从node.js使用node_redis使用redis的ZINTERSTORE命令: //node.js server code var redis = require("redis"); var client = redis.createClient(); // … omitted code … exports.searchImages = function(tags, page, callback){ //tags = ["red", "round"] client.ZINTERSTORE("tmp", tags.length, tags.join(' '), function(err, replies){ //do something }); } 但是,调用client.ZINTERSTORE抛出错误:[错误:ERR语法错误]。 将标签作为数组传递(而不是使用tags.join(''))会引发相同的错误。 我在哪里可以find这个命令的正确语法? node_redis的源代码将其隐藏在JavaScriptparsing器中,但是如果没有“遍历”代码,就很难看到发生了什么。 有没有一种好的方法来通过node.js进行debugging?

Sails.js如何加载会话并创build,检查,销毁?

在configurationsession.js我已经启用redis之前,我已经安装了这两件事情… npm安装connect-redis npm install express adapter: 'redis', // // on localhost is expected. // Read more about options at: https://github.com/visionmedia/connect-redis // host: 'localhost', port: 6379, ttl: 3600, db: 0, pass: '', prefix: 'sess:' 在控制器2中 //分配会话中的值并redirect到controller1 req.session.error =“category not found”; //错误TypeError:无法设置未定义的属性“错误” module.exports = { load_word: function(req, res){ var async = require('async'); var express = require('express'); var […]

缩放websocket节点服务器

我知道这个问题已经部分地问过( 如何扩展Node.js WebSocket Redis服务器? ),但我想知道是否有任何替代Redis快速共享节点实例之间的WebSocket对象,特别是types套接字( https:// github.com/einaros/ws )。 我已经尝试了redis,并遇到了一个事实,即networking套接字对象是循环的,很难连续。 然后,我使用Crockford的cycle.js( https://github.com/douglascrockford/JSON-js/blob/master/cycle.js ),但它似乎去掉websocket对象的方法,因为我得到一个节点说错误我已经从redis中读回套接字并重新循环后,“Object object has no method send”。 任何帮助将非常感激。 在此先感谢詹姆斯。

启动脚本后出现奇怪的Node.js错误

我使用Node.js。 我的服务器js脚本我运行这样的: 节点chat_server.js 在terminalCentOS中收到错误消息之后: 在开发模式下未定义端口的Express服务器。 +用户未定义的连接node_redis:没有callback发送错误:ERR错误的数量为'sadd'命令的参数 /home/who/public_html/node/node_modules/redis/index.js:582扔错误; ^错误:ERR在ReplyParser的'sadd'命令的参数错误数目。 (/home/who/public_html/node/node_modules/redis/index.js:317:31)at ReplyParser.emit(events.js:95:17)at ReplyParser.send_error(/ home / who / public_html / node / node_modules /redis/lib/parser/javascript.js:296:10)在RedisClient.on_data上的ReplyParser.execute(/home/who/public_html/node/node_modules/redis/lib/parser/javascript.js:181:22) /home/who/public_html/node/node_modules/redis/index.js:547:27)。 (/home/who/public_html/node/node_modules/redis/index.js:102:14)在Socket.emit(events.js:95:17)。 (_stream_readable.js:748:14)在Socket.emit(events.js:92:17) 在emitReadable_(_stream_readable.js:410:10) 对不起,我不明白这些错误的原因。 我应该注意什么以及如何解决? 例如,我使用命令redis SADD : redis_cli.sadd( "user.friend:" + currentIdUser, data.idUser); 我做了一个实验 ,创build了一个新的文本脚本: var redis = require("redis"); var client = redis.createClient(); client.on("error", function (err) { console.log("Error " + err); }); client.sadd("users","naveen",function(err,reply){ […]

如何设置节点redis客户端上的读取超时?

在github上,我看不到读取超时的选项, https://github.com/NodeRedis/node_redis 有connect_timeout ,但这是为了连接,而不是读/写tho。

Redis连接到redis.abc.abc失败 – 写入EPIPE

无法从NodeJS连接到Redis并出现以下错误。 Redis connection to redis.abc.abc failed – write EPIPE 使用v0.10.35版本v0.10.35 node_redis模块0.12.1 &Redis数据库版本3.0.4 目前,NodeJS服务器每分钟处理大约50K个请求,每个请求在Redis中执行至less2次操作(GET / SET)。 它有一段时间(大约30分钟)罚款,后来开始抛出上述错误。 任何工作?

如何使用NodeJS的集群模块在多个核心上正确运行socketio服务器?

套接字IO服务器在单个NodeJs实例上运行良好。 但是,当我使用NodeJS的集群模块运行多核心服务器时,我收到错误,“连接closures之前收到一个握手响应”。 我find了原因,发现, 问题的实质是,当您在服务器或多个服务器上运行多个节点应用程序线程(worker)时,socket.io客户端连接将按照随机循环方式由群集路由,握手/授权的客户端请求将被移交到那些他们没有握手/授权的工人那里乱七八糟的地方开始。 来源链接 我已经尝试了一些东西,使其工作,但迄今没有成功。 这是代码 'use strict'; process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var express = require('express'); var config = require('./config/environment'); var session = require('express-session'); var redisStore = require('connect-redis')(session); var cluster = require('cluster'); var domain = require('domain'); var socketIo = require('./config/socketio'); var REDIS = require('redis') var store = REDIS.createClient(); var pub = REDIS.createClient(); var […]