Tag: redis

Redis – node.js / ping或存活呼叫

我想检查连接到我的redis数据库是否活着。 我想用node.js来做 – 每5分钟发一个呼叫到DB redis,如果连接丢失,通知它。 我使用以下内容: var db = require("redis"); var dbclient = db.createClient(); 问题是我没有看到和这个包支持的活着/ ping命令。

使用socket node.js检测用户切换页面

当用户转到网站内的其他页面时,我试图从Redis频道取消订阅。 我已经尝试检测到一个断开套接字事件,当用户点击一个链接,但事件从未触发。 // Do things req.socket.on("disconnect", function(){ console.log("Disconnected"); conexion.punsubscribe(); }); 你知道什么套接字事件,我可以用来赶上这个行动? 谢谢。

等待来自不同模块的多个事件,然后启动服务器

我正在构build一个应用程序,其中有两个不同的模块。其中一个是连接到mongodb,另一个模块是连接到redis进行会话pipe理。 在这种情况下,每个模块有2个事件错误和连接。 以下是其中一个模块的示例: var sessionStore = new SessionStore(app.get("sessionStore")); sessionStore.client.on("error", function(err) { console.error("[SessionStore]:", "connection error:", err.address + ":" + err.port, "for process:", process.pid); var sessionStoreError = new Error("Session store error"); sessionStoreError.message = "Session store connection error"; sessionStoreError.code = err.code; sessionStoreError.address = err.address; sessionStoreError.port = err.port; app.emit("error", sessionStoreError); }); sessionStore.client.on("connect", function() { console.log("[SessionStore]:", "connection established:", app.get("sessionStore").host + […]

EXPIRE Redis键如果没有修改

如果在最近的x分钟内没有修改该值,是否有直接的方式来EXPIRRE一个redis键? 我怀疑这是可能的 – 但我想知道是否有本地解决scheme或一些非常小的逻辑和/或额外的状态。 现在,这个行为可能已经存在 – 我调用一个关键的EXPIRE。 那么如果我在该密钥上调用SET,我可以再次调用EXPIRE,并且密钥将会以新的值不旧的方式进行EXPIRE?

在插入rethinkdb之前,如何使用rediscachingtwitterstream?

我在哪里 我有一个简单的node.js twitterstream消费者跟踪各种井号标签。 通常,这些都是趋势标签,这意味着大量的twitter json正在stream入我的消费者。 我不做在消费者的任何处理的Twitter JSON。 我想要的是 我想在rethinkdb中存储微博json对象。 假设 由于tweets的数量(以及所述卷的不可预测性),我应该避免将tweet json对象插入到rethinkdb中,因为它们被消费(因为tweets进入消费者的速率可能比rethinkdb可以写入的速率更快那些推文)。 由于Redis的处理速度足够快,因此可以将推文json对象直接推送到redis,并让另一个进程将这些推文插入到rethinkdb中。 我希望学习的东西 我的假设是否正确? 这个build筑是否有意义? 如果不是,你能build议一个更好的select吗? 如果我的假设是正确的,这个架构是有意义的, 一个。 使用redis作为推文的缓冲区的最佳方式是什么? 湾 为了在rethinkdb中执行插入操作,读取(和更新/清除)redis缓冲区的最佳方法是什么?

使用connect-redis的Node / Express,如何处理会话过期

我有一个使用Redis作为会话存储的Node / Express应用程序。 我有一个关于处理届会届满的问题。 我想有一个活动的会话,直到浏览器closures,所以我没有设置会话到期时间。 这样做会话cookie工作正常,但我对Redis有怀疑。 存储在Redis数据库中的夫妇密钥/值似乎永不过期。 如何正确处理这个问题? 有一种方法来configurationredis来销毁一定的空闲时间存储的值? 或者,在应用程序内部调用connect-redis时,最好设置一个TTL? 应用程序内的会话的实际configuration: var session = require('express-session'); var RedisStore = require('connect-redis')(session); app.use(session({ store: new RedisStore({port:6379, host: 'localhost'}), secret: "my-secret-here", resave: false, saveUninitialized: true }));

如何增加REDIS CPU使用率

嗨,我在nodejs中使用redis ,并尝试使用Jmeter执行redis命令。 CPU使用率不超过5%,我也试图增加负载,然后CPU使用率也不超过5%。 当我试图使用默认基准testing,然后CPU使用率达到50%。 你能帮我做redis最大的CPU利用率 这是我的jmx文件 jmx文件 这是我的nodejs程序var express = require('express'); var app = express(); var redis = require("redis"), //client = redis.createClient(6379,"10.96.82.163"); client = redis.createClient(6379,"10.96.82.175"); app.get('/', function (req, res) { res.send("HEY Nodejs runnning on 10.96.82.175:4000"); }); app.put('/set/:arg1/:arg2', function (req, res) { client.set( req.params.arg1,req.params.arg2,function (err, reply) { if (reply==null) { res.send("null"); } else { res.send(reply.toString()); } […]

从另一个lua脚本加载lua脚本

我为我的node.js项目写了一些lua脚本。 但我的一些lua脚本里面有相同的代码。 让我先解释一下。 我的第一个脚本返回来自redis的给定密钥的所有数据。 script1.lua local data = {}; local keyslist = redis.call('keys', 'day:*'); local key, redisData; for iCtr = 1, #keyslist do key = string.gsub(keyslist[iCtr], 'day:',''); redisData = redis.call('hmget', keyslist[iCtr], 'users'); table.insert(data, {date=key, users=redisData[1]}); end return cjson.encode(data); 我的第二个脚本返回来自redis的相同密钥的前2个logging。 script2.lua local data = {}; local keyslist = redis.call('keys', 'day:*'); local key, redisData; for iCtr = […]

Redis / Node等待密钥存在

是否有可能等待Redis中存在一个密钥? 有一个引擎运行在处理繁重的后台。 这个想法是让其余的API向Redis发送请求,并从该列表读取引擎。 其余的api会监视一个特定的键,最终将包含发送给客户端的响应。 这可能吗? – 当我做我自己的研究时,我一直在BLPOP上,但是这是一个列表,而不是Redis中的一个特定的键。 有没有更好的方法来做到这一点?

节点js和Redis未定义的JSON属性

当我尝试从redis函数获取JSON属性时,我得到了undefined。 当我使用这个控制台输出什么是假设: redisClient.on("message", function(channel, data) { console.log("new message add in queue "+ data + " channel"); socket.emit(channel, data); }); 安慰: 新消息添加队列{“消息”:“一个新的消息!”,“用户”:“John Doe”}频道 当我尝试从数据中获取属性时,我得到了undefined: redisClient.on("message", function(channel, data) { console.log("new message add in queue "+ data['message'] + " channel"); socket.emit(channel, data); }); 新消息添加到队列中的未定义通道 我也试图得到这样的数据属性没有运气 data.message 这很奇怪,因为在我的客户端脚本中,我可以使用data.message,它工作得很好。