Tag: redis

为什么会议商店有静态超时/ maxAge

我使用node.js + redis进行会话持久性,但是我注意到几乎在每个redis存储或其他会话持久性的例子中,都有一个静态 maxAge或会话超时,您可以configuration。 对我来说,会话​​长度应该基于最后一次交互是有意义的,从而允许我对超时进行更新。 Redis关于其EXPIRE文档的文档有一个关于刷新timeoutl的部分 刷新会话超时devise不好? 应该始终使用静态超时? 编辑 我原来的问题是非常一般的,因为我找不到我的具体案例的文件,我认为这可能是不好的做法! 在查看源代码之后,我终于发现了如何使用Connect + Node进行此操作: 连接监听头end事件(知道更新会话) 事件触发时,会要求会话存储保存会话 作为connect-redis的一部分,save方法更新maxAge 总之,我正在看错文件的地方。 连接#会话文档,如果maxAge被分配了一个新的值,会话存储(如connect-redis)应该遵守。

我们可以参加Redis吗?

我有一个sorting集,SortedSet1 =“token”=>“score” 我有一个列表,List1 =“token”=>“username” 现在,我想有一个JSONstring值的logging – 例如>“token”=>“{name:username,score:score}” 所以我可以播放一个排行榜。 如何join这两套? 还是有机会有两个列表或两组join?

Redis + Node.js – 如何检索值

我正在使用Node.js的Redis数据库。 使用client.hmset("jobs", "jobId_12345", JSON.stringify(jsonJob))我存储JSONstring化作业。 现在我想遍历所有作业,并检索作业ID和string化作业。 我尝试了client.hkeys("jobs", function (err, replies) {}但只检索密钥。 我尝试了client.hgetall("jobs", function (err, obj) {}但我不知道如何从obj中检索键和值。 任何帮助,不胜感激,因为我卡住了。

等待数据在数据库中出现/更改

我正在编写REST API,它必须提供用户之间的实时通信。 可以说我有db.orders集合。 我有API GET /order/{id} 。 这个API应该等一下order文件的变化。 例如,只有当order.status ready时,它才会返回一些数据。 我知道如何做长轮询,但我不知道如何检查数据在数据库中出现/更改。 如果有一个应用程序实例很容易 – 那么我可以在内存中执行此操作,如下所示: var queue = [] // GET /order/{id} function(req,res,next) { var data = getDataFromDb(); if(data && data.status == 'ready') { res.send(data); return; } queue.push({id: req.params.id, req: req, res: res, next: next}); } // POST /order/{id} function(req,res,next) { req.params.data.status = 'ready' saveToDb(req.params.data); var […]

Node-redis非常长的初始连接

有时我的node-redis客户端需要很长时间才能初始连接到redis服务器。 我在这里login.on('error'),.on('end'),.on('connect')和.on('ready')事件: Redis: storage#0 <localhost:6381> end Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed – getaddrinfo ENOTFOUND] /*… much of same errors, sometimes up to 5minutes …*/ Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed – getaddrinfo ENOTFOUND] Redis: storage#0 <localhost:6381> connect Redis: storage#0 <localhost:6381> ready 当发生这种情况时,我通常可以使用redis-cli连接到redis服务器。 有没有人有关于这个原因的任何想法?

用Rediscachingmongoose对象

是否有可能在Redis中caching(例如)mongoose文档对象,也许是为了实现基于超时caching刷新机制的回写式或直写式caching? PS:我对mongoose-redis-cache很熟悉,但是我认为它只支持精简查询,这在这里并不完全符合这个目的。 (但我可能是错的)。

Redis本地或托pipe在开发节点/快递应用程序?

如果您使用connect-redis作为会话pipe理的客户端,您会在本地运行redis还是连接到像RedisToGo这样的远程第三方服务? 这有什么关系吗? 你会在意吗? 我试图让我的本地开发环境正确,从来没有使用过Redis。 谢谢。

pipe道Redis发布到套接字? Node.js的

我正在构build一个应用程序,偶尔在给定频道上发布数据: redisClient.publish('global-channel', data); 客户端需要能够连接到服务器并收听全球广播。 这种方法有什么问题吗? 特别是,为每个套接字连接创build一个redisClient? io.sockets.on('connection', function(socket){ var socketRedis = redis.createClient(); socketRedis.subscribe('global-channel'); socketRedis.on('message', function(ch, msg){ socket.emit('event', msg); }); }); 我是Node,Redis和socket.io的新手……还在学习哪一块应该处理某些任务以及在哪里(服务器和客户端) – 谢谢!

NodeJS + ExpressJS + RedisStore会话未定义

我经历了许多同样的问题,但是各种解决scheme都没有帮助。 我正在使用Redis将会话存储在集群NodeJS + ExpressJS应用程序中,但会话始终未定义。 这是我的快速安装程序: var express = require('express'), RedisStore = require('connect-redis')(express), Config = require('./config/config'), cluster = require("cluster"), QueryManager = require('./service/query_manager'), app = express(); // — Index — // function renderSplash(req, res) { res.render(…); } function renderIndex(req, res) { res.render(…); } app.get('/', function(req, res) { if(req.session.user === null) { renderSplash(req, res); } else { renderIndex(req, […]

在哪里运行redis-sentinel

为了pipe理主从故障转移,redis手头上有sentinel。 我正在使用两台服务器。 一个用于主服务器,另一个用于从服务器。 主机和从机都是远程服务器,并作为后台进程运行。 如何configuration主站和从站IP的标记。 哨兵需要运行的地方。 如何运行哨兵守护进程。 详细信息: 我的主人在跑 Port: 6379 IP: 192.168.56.101 我的奴隶跑进去了 Port: 6379 IP: 192.168.56.102 我的节点正在运行 IP: 192.168.0.140 注意 :Redis服务器在Windows的虚拟机中运行。 节点也在同一台机器上本地运行。 更新该文档指定运行sentinel的命令。 我的问题是哨兵需要在我的本地机器上运行,或者在主机正在运行的虚拟机上运行,​​或者作为单独的哨兵服务器运行。 就像一个redis服务器的主人,一个奴隶,另一个哨兵。