Tag: redis

在Express.js中不能使用connect-redis

我正在学习Express.js,并学习了如何使用cookie会话模块处理会话。 我试图使用快速会话,但我有问题。 以前,我使用cookie会话而不是快速会话,而memoryStore完美运行。 但是,我不能使用cookie-session的connect-redis,因为这个原因,我安装了express-session,但是使用它,我不能使用任何types的存储,也不能使用memoryStore。 Redis DB在redistogo上,它的URI看起来像这样:(为了安全起见,尽pipe这只是为了实践)redis:// redistogo:e34d3 ******************* **** f4bb@albacore.redistogo.com:10072 / 但是,当我运行“节点应用程序”,它打印一个错误。 我的package.json: { "name": "application-name", "version": "0.0.1", "author": "Me <me@gmail.com>", "license": "MIT", "private": true, "scripts": { "start": "node app" }, "dependencies": { "express": "4.xx", "cookie-parser": "1.xx", "express-session": "1.xx", "connect-redis": "2.xx" } } “npm ls”显示如下: ├─┬ connect-redis@2.0.0 │ ├── debug@0.8.0 │ └── redis@0.10.1 ├─┬ cookie-parser@1.0.1 […]

将对象从asynchronouscallback函数中推入到本地数组中

我在我的服务器上使用node.js,并使用redis key-store来存储有关我的angular色的数据。 每个连接都有自己的特点。 我想把字符(人物,名字,年龄,职业等等)的所有数据都转换成字符数组,所以我可以有select地把它发送给连接的客户端。 var Characters = []; for (var ID in Connections) { redis_client.HGETALL(ID, function(err, result) { if (result) { Characters.push(result); } }); } console.log(Characters); 我已经读过,这是由于asynchronousvs同步问题,所以我做了全局variables字符。 //global variables var character; //function code var Characters = []; for (var ID in Connections) { redis_client.HGETALL(ID, function(err, result) { character = result; }); if(character) { console.log(character); // […]

添加哈希来设置成员 – 节点 – 重做

Redis让我很困惑。 我只需要一组用户。 用户的密钥将是他们的userID : var user = userID; 然后我想为这些用户设置哈希值,现在我只有一个 – socketID : // add first user redis.sadd("users", user); redis.hmset(user, "socketID", socket.id); 但是, user被添加到设置的users 。 但是socketID的散列不存在。 这似乎是当我做hmset ,它被设置在与sadd命令中的on无关的其他user密钥上。

编辑redis哈希值的命令

在我的redis数据库中,我有以下结构的数据: Folder(gk) Folder(integration) Folder(apifactory) key(gk:integration:apifactory:mobile) 密钥在以下结构中具有hashkey和hash值: Hashkey HashValue endPointTieout 5 现在我想把这个值(5)改成其他值。 什么是编辑值的命令? 我也试过: HMSET gk:integration:apifactory:mobile field1 "endPointTimeout" field2 "90" 但没有任何工作。

如何在JavaScript中初始化Redis中的位图

我需要在Redis中用一组4 * n位全部初始化一个大的位图,如果我这样做: var redis = require('redis'); var client = redis.createClient(); var n = 8; var mask = '\\x'; for (var i = 0; i < n; ++i) { mask += 'f'; } client.set('mybitmap', mask, callback); … mybitmap被设置为xffffffff而不是所需的\xffffffff 。 任何想法如何逃避JavaScript中的反斜杠,以便我们不会在Redis中丢失它? 注意:我正在使用node_redis客户端。

在node-restify-oauth2-mongodb的初始设置上是invalid_client

我的问题类似于这个问题,没有接受答案: 使用node-restify-oauth2-mongodb的问题 不过,我的clientKeys集合是正确命名的,或者至less我认为是有点不同的。 当我进入我的mongo实例,看我的collections我有: clientkeys users 当我看到这些集合中的东西时,我看到: > db.clientkeys.find().pretty() { "_id" : ObjectId("51c6e846ede91c0b8600005e"), "clientName" : "Test Client", "client" : "test", "secret" : "password" } > db.users.find().pretty() { "_id" : ObjectId("543d7b974f1870f131c6d0aa"), "name" : "Test", "email" : "test@test.com", "username" : "tester1", "hashed_password" : "$2a$10$gpMXyCuILBbMF2K6Aroc7.lKoIpuGhvL98ZGGoE0tEOtYSQaCpMde", "role" : "Admin", "__v" : 0 } 我遵循回购的方向: https : //github.com/rgallagher27/node-restify-oauth2-mongodb 所以我运行这个: curl […]

实时:Node.js,MongoDB和Redis?

好的,首先我要告诉你,我对标题中提到的所有技术都是新手。 我想制作一个新的应用程序。 把它看作是一个实时交易引擎(例如股票)。 所以,有两件事真的很重要: 速度/performance:每个人都必须实时看到交易 安全性:同样的交易可以同时进行,但只有一个可以成功 我想到了这样一个方法: 如果用户想要以每股100美元的价格购买10股X股票,他就会下订​​单,我用Redis存储(速度),并用socket.io把它推送给所有的客户。 那么,一旦另一个用户想要以100美元出售15个peaces,那么脚本应该检查是否有一个开放的买单。 如果是这样,它将其保存为MongoDB中的成功事务(persistance),并closures10个peaces的购买订单。 在这个例子中,剩下5个peaces。 脚本会显示这样的计算:15(卖100美元)减10(买100美元)等于5左。 每次有人想要交易的东西,这个计算将被作出,因为我不知道有多less股票剩下的交易。 编辑:或者我可以在Redis中减去15个peaces中的10个peaces,这样我就不需要每次计算了。 但如果出现什么问题,我不知道原始数据是什么。 这是一个问题。 现在的问题是: 你会这样做吗? 更好的想法也许? 如果两个用户在同一时间完成相同的订单,会发生什么情况? 这是否会发生,它被存储在MongoDB两次作为不同的成功交易? 当然,你可以通过Redis和MongoDB进行审计并进行比较。 但那将是一个可怕的解决scheme。 希望你明白我想问什么。 提前致谢!

Redis:添加到一定的长度数组?

我想在Redis中使用一个数组(使用Node),我可以在其中添加值并指定我希望它留在那里的时间。 在这个时间限制之后,他们应该被删除,并且理想地能够打电话给我,所以我知道刚刚离开的东西。 恩。 我可能会收到120秒的请求,所以我想把这个值添加到地图上,然后把它删除。 有一个更好的方法吗? 我想过使用EXPIRE,但似乎只是为了键,而不是数组中的元素? 任何想法都会很棒。 这就是我所做的: app.get('/session/:length', function(req, res) { var length = parseInt(req.param('length'), 10); addToArray(length, ip) var ip = req.connection.remoteAddress; res.json({ip: ip, length: length}); }); 基本上,当我将它添加到数组中时,我希望它只在传入的时间内保持它在数组中。所以如果你说30秒,它在该数组中30秒,然后消失,并调用回电话。 也许有更好的方法来解决这个问题? 我现在所做的是保持时间添加和ip,时间在一个数组中,并周期性地通过数组检查和删除循环,但也许可以在redis中自动执行此操作。

在Node中创build唯一的API密钥以存储在Redis中

我在Node中构build一个API,并在Redis中存储API密钥/访问令牌。 如何才能最好地生成一个唯一的API密钥/访问令牌,以在Redis中存储密钥和电子邮件地址作为值? Redis是否有一个内置函数来生成一定长度和字符集的唯一ID,或者我应该如何解决这个问题? 谢谢!

如何用Heroku / RedisCloud / Node.js远程检查数据

我有RedisCloud与Heroku上的Node.js运行,并希望远程检查数据,理想情况下使用OS X命令行。我已经看到这样的: 如何远程检查我的RedisCloud数据库中的数据? 但这是为了Ruby,不适合我。 (我没有findredis-cli:command 。) 我正在使用node_redis客户端: https://github.com/mranney/node_redis 在我的服务器应用程序的要求是这样的: var express = require('express'), app = express(), http = require('http'), server = http.createServer(app), io = require('socket.io').listen(server), redis = require('redis'), ioredis = require('socket.io-redis'), url = require('url'), redisURL = url.parse(process.env.REDISCLOUD_URL),