Tag: redis

使用RedisStore时,有什么方法可以查看当前会话吗?

在意识到Express会话不好之后,我开始使用Redis来存储用户会话。 我是这样做的: var session = require('express-session'); if (process.env.REDISTOGO_URL) { var rtg = require("url").parse(process.env.REDISTOGO_URL); var redis = require("redis").createClient(rtg.port, rtg.hostname); redis.auth(rtg.auth.split(":")[1]); } else { var redis = require("redis").createClient(); } var RedisStore = require('connect-redis')(session); var redisOptions = {client: redis}; app.use(session({ store: new RedisStore(redisOptions), secret: 'honkydory', name: 'honk' })); 我的问题是,有没有办法让我在运行Redis数据库的时候浏览一下? 我希望能够监视是否有用户login和他们是哪些用户。 另外我想确保它正在创build和维护会话。 谢谢!

从Predis订阅function中激发Laravel事件

我有一个Laravel PHP应用程序和一个NodeJS客户端。 发生在我的客户端,我想更新我的PHP后端,所以我发布消息到Redis频道,并在我的Laravel应用程序,我有一个Redis订阅服务器在该频道上侦听消息。 理想情况下,我想在收到消息时触发一个事件,但是我得到这个错误 [Predis \ Response \ ServerException] ERR only(P)SUBSCRIBE /(P)UNSUBSCRIBE / QUIT在此上下文中被允许 我能够从订阅者那里做我需要的东西,比如更新存储库等等,但是我无法发起Laravel事件,这是在这里做的。

如何正确设置Sails应用程序的原生Redis连接?

我想为我的帆应用程序使用redis连接,但我不想使用帆,因为我不会绑定到任何模型。 所以我确定了我应该遵循的步骤。 使用任何节点适配器连接Redis。 这可能应该在bootstrap sails过程中完成。 在全球范围内公开Redis并/或将其绑定到服务。 然后我很困惑,因为我不知道如何全局公开任何对象,并在需要的情况下,使用redis准备函数并绑定到任何自定义服务。 我怎样才能做到这一点?

使用Redis和Node.js前端+后端

我正在制作一个使用节点js的web工具,它需要不断地获取大量的数据并将其提供给用户。 为了让每个新用户都没有实例化大量的侦听器并在本地处理所有数据,我创build了一个node.js后端,它接收所有数据并将处理后的数据推送到Redis数据库。 然后我想要一个单独的前端,用户从这个相同的Redis数据库提供数据。 我看过很多教程,解释了如何使用Node.js创buildRedis服务器,这是我需要的后端,但是我需要我的前端连接到由我的后端创build的现有Redis数据库。 是否有捷径可寻? 另外这台服务器上运行的服务器已经在运行2个Redis数据库了。 这会是一个问题吗? 我没有看到在Node.js上创build数据库编号的方法,例如,我会创build一个Redis数据库Python。 谢谢 大卫

如何在redis中保持HTTP响应

我正在nodeJS上创build一个长轮询聊天应用程序,而不使用Socket.io并使用集群进行扩展。 我必须find一种方法来存储所有长轮询的HTTP请求和响应对象,使其可以跨所有节点群集使用(这样,当收到一个长轮询请求的消息时,我可以得到这个请求并回应) 我已经尝试使用redis,但是,当我对http请求和响应对象进行string化时,我得到“无法使string循环结构”错误。 也许我正在以一种错误的方式接近它。 在这种情况下,我们通常如何在不同的集群上实施lon-polling?

无法运行node-redis-session lib

我已经安装了node-redis-session依赖关系,并且在第一次运行正常,但是我已经删除了浏览器创build的cookie,现在我不能再运行了。 这是错误信息 TypeError: Object object has no method 'hasOwnProperty' at ~/../server/node_modules/node-redis-session/lib/index.js:57:22 这是代码的摘录(第57行) var sid; if (!req.cookies.hasOwnProperty(cookieName)) { //easy to find in redis with command "keys * s|*" sid = 's|'+generateSid(); req.cookies[cookieName] = sid; res.cookie(cookieName, sid, { expires: new Date(new Date().getTime()+expireTime), httpOnly: true }); } 如果你做一个console.log(req.cookies)是一个空对象。 我该如何解决这个问题?

为商务应用程序快速存储会话我应该使用什么?

我想创build会议多个login相同的帐户现在我正在为任何特定的用户存储唯一的会话string现在我的问题是,当我使用快速会话,然后在其文档页面input链接描述在这里提到 警告:默认的服务器端会话存储器MemoryStore故意不是为生产环境而devise的。 它会在大多数情况下泄漏内存,不会通过单个进程扩展,而是用于debugging和开发 现在我的问题是,因为我正在创build一个应用程序的业务,如果我不使用,如果我不使用,那么什么是最好的存储会话,我已经听说redis,但我也听说,它消耗了很多内存,这就是为什么可以任何人都可以放一些这个我会很大胆的。

Redis不能在CentOS上工作

我在安装Redis时遇到了问题,整个一周我都在寻找解决scheme。 我需要安装在CentOS 6服务器上运行的NodeBB(使用WHM / Cpanel)。 按照http://nodebb-francais.readthedocs.org/projects/nodebb/en/latest/installing/os/centos.html中的步骤操作 当我使用命令redis-benchmark -q -n 1000 -c 10 -P 5运行一个testing( https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-ubuntu-14-04 )时, redis-benchmark -q -n 1000 -c 10 -P 5 ,系统返回错误Writing to socket: Connection refused 。 在尝试我多次安装Redis时,不知道这是否会影响现在的function。 有没有人有任何想法可能是什么问题? 显然,Redis实际上并没有运行,而且很难find关于这个主题的具体内容。

什么是检查游戏状态和发送套接字连接客户端的正确方法?

我正在构build一个社交多人实时游戏,我正在考虑采用什么架构来跟踪状态游戏,并向连接的玩家发送正确的游戏套接字。 我的比赛有四个状态round start , check players , matching state ,全部round result 。 这些状态有10 sec超时时间,并且有空间,而房间有玩家。 我的状态如下所示: var stateDoc = { type: 'round start', uid: uid, timeout: 10000 }; 我的问题是我应该如何存储状态和更新这些?

在Docker容器上清理

我希望有一个多docker容器设置运行nodejs与socket.io。 我正在使用Redis的一些共享socketId /状态。 当我杀死一个nodejs进程时,我执行了一个清除函数来删除与进程相关的sockeId /状态。 process.stdin.resume();//so the program will not close instantly function exitHandler(options, err) { console.log('exitHandler'); _.forEach(global.sockets, (socket)=> { if (global.redisClient) { global.redisClient.hdel('socketA', socket); global.redisClient.hdel('socketB', socket); global.redisClient.del(`socketC_${socket}`); } }); _.forEach(global.userIds, (userId)=> { if (global.redisClient) { global.redisClient.hdel('socketD', userId); global.redisClient.del(`socketE_${userId}`); } }); if (options.cleanup) console.log('clean'); if (err) console.log(err.stack); if (options.exit) process.exit(); } //do something when app […]