Articles of node redis

正确嵌套Rediscallback

我正在写一个node.js程序接收snmp陷阱并将它们存储在redis散列数据库中。 我没有在Node.js编程很久,我不认为我完全理解我的代码是如何执行的。 我觉得我的一些redis调用在其他调用之前完成,这就是为什么我试图在callback函数中嵌套一切,但是我担心我没有按照正确的方式来执行。 我的输出看起来就像我正在接近我想要达到的目标,但是还有一些随机的问题,比如我的Generation#为1,我接收到第一个陷阱,然后是11或111。 我所做的就是在整数上执行redis client.incr函数。 简单而简单地说,我使用了两个哈希键来跟踪我收到的当前和过去的陷阱。 我跟踪两个数字生成和散列号作为单独的整数键值,并根据需要增加它们。 这两个数字用于创build和访问当前和过去的陷阱哈希值。 这是我的代码。 function alarmCheck (key, field, value, alarmType, ipAddress) { var historyKey = "History:"+key; //var generationNumber; //var numberInHash; client.get(ipAddress+":"+field+":Gen", function (err, rep) { //generationNumber = rep; var generationNumber = rep; console.log("The Gen: "+rep); client.get(ipAddress+":"+field+":Field", function (err, reply) { var numberInHash = reply; //numberInHash = reply; console.log("The Field: […]

Redis超时错误

任何人都可以告诉我这个testing代码有什么问题吗? 程序工作正常,但不可避免地,我得到Redis的超时错误后,几个小时的不使用。 请注意,我已将此邮件上的Redis主机和密码更改为虚假信息。 请注意,无论使用node-redis还是iris-redis驱动程序,我都会得到同样的错误。 var express = require('express'); var app = express(); // Redis Data Store var redis = require("iris-redis"); var client = redis.createClient( 6379, "nodejitsudb5555563948.redis.irstack.com"); client.auth("fehehyrj971946ef332e975fbebb4"); client.on("ready", function() { client.iris_config(function(er, config) { if(er) throw er; console.log("Got my server config: %j", config) // client.quit() }); }); // Define a test route app.get('/test', function(req, res) { […]

避免在用对象返回一个redis列表时迭代

我将对象的JSON.stringified版本保存到Redis列表。 我需要使用列表,因为我正在使用LPUSH / RPUSH和LTRIM。 问题是node_redis正在保存我的string化对象的转义版本,所以当我检索列表范围时,我无法parsing整个列表,我必须遍历列表并parsing列表中的每个项目。 有没有办法parsing整个列表时检索它,而不是迭代整个列表?

NodeJS + Redis + Express + Passport Facebook身份validation失败

NodeJS和redis与护照facebook的整合有一个问题。 这是我的代码: var express = require('express'); var engine = require('ejs').__express; var app = express(); var mongo = require('mongodb'); var mongoose = require('mongoose'); var hanzi = require('./modules/hanzi'); var session = require('express-session'); var passport = require('passport') , FacebookStrategy = require('passport-facebook').Strategy , RedisStore = require('connect-redis')(session) , redis = require('redis') , dbRedis = redis.createClient(); Server = mongo.Server, Db = […]

Node.js Redis的lpush错误

我正在使用node.js和redis制作一个Web应用程序。 我想将每个传入的请求推送到一个redis队列,然后推送到数据库。 但是每次程序到达lpush命令时都会报错。 这是我的index.js代码, var express = require('express'); var app=express(); var http = require('http').Server(app); var io=require('socket.io')(http); var qs=require('querystring'); var redis=require('redis'); var client = redis.createClient(); var count=0; var parseString = require('xml2js').parseString; //var countm=1; //var counte=1; app.get('/adminm', function(req, res){ res.sendfile('adminmovies.html'); }); app.get('/admine', function(req, res){ res.sendfile('adminevents.html'); }); app.post('/', function(req,res){ count=count+1; var body=""; req.on('data',function(data){ body+=data; }); req.on('end',function(){ console.log(body); var […]

在NodeJS中存储服务器端cookie的位置?

我的后端/服务器正在调用需要authentication的远程REST服务apples 。 stream程如下: 使用ExpressJS $ http模块调用http://remote.service.com/api/login 。 此服务返回有效的cookie,给予成功的身份validation 使用ExpressJS $ http模块调用http://remote.service.com/api/apples 。 并发送从步骤1中获取的cookie 由于服务器在行中多次调用apple服务,因此我希望避免每次都进行身份validation,并希望获得有关如何从步骤1中存储cookie的提示,以便下次重新使用它。 我应该使用node-redis还是ExpressJS cookie-parser ? 我应该如何处理cookie过期? 编辑: Cookie可以保存在一个全局variables。 见下面的评论。

Redis订阅超时

我如何设置Redis的计时器function子,所以当客户端连接和消息没有收到发布者在200毫秒sockets发出一个事件? 这就是我现在所拥有的: io.on('connection', function(socket){ const sub = redis.createClient(); sub.subscribe("data"); sub.on("message", function(channel, message) { io.emit("data", JSON.parse(message)); }); sub.on("error", function(err){ console.log("Error" + err); }); socket.on("disconnect", function(){ sub.removeListerner('message', function(){ io.emit("disconnected"); }) }); });

Ping命令在ioredis-Node JS中

有什么办法可以在我设置或获得密钥之前检查天气redis是否可用或终止? 我怎样才能做到这一点? 我正在使用ioredis模块。

使用node-redis将AWS redis连接到节点

我正在使用node-redis,并且很难连接到外部redis实例。 我试着用redis-cli,它工作。 但是,与节点,我无法弄清楚如何正确给url和端口。 随着Redis-cli- redis-cli -h mydomain.something.something.cache.amazonaws.com -p 6379 但是用nodejs 下面没有工作 var client = redis.createClient('redis://mydomain.something.something.cache.amazonaws.com:6379'), 也不 var client = redis.createClient({host:'redis://mydomain.something.something.cache.amazonaws.com', port: 6379}); 我如何configuration它。 请帮忙。

我应该如何在节点js中使用db + http调用的promise

我需要执行哪个系统 从父集合获取数据。 检查在redis中find的特定密钥 如果没有,然后做一个http调用并获取json数据,然后设置caching 如果是,则从caching中获取数据 将数据保存到父标识的子集合中。 我有使用callback这样的工作解决scheme。 MongoClient.connect(dsn).then(function(db) { parentcollection.findOne({"_id" : new ObjectId(pid)}, function(err, data) { var redis = require("redis"), client = redis.createClient(); client.on("error", function (err) { console.log("Error " + err); }); // If not set client.get(cacheKey, function(err, data) { // data is null if the key doesn't exist if(err || data === null) { […]