Articles of redis

在插入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,它工作得很好。

在Redis中存储JSON文件并检索它

我将存储在Redis中的JSON文件中的信息。 我正在用nodejs redis驱动程序来做这件事。 如果我使用散列表来存储信息,你认为我正在失去一些东西吗? 信息只是数据中的一个大数组(数千个)元素(每个元素中的几个字段,有时不超过50个字段)和元数据中的一小组属性。

发布/订阅可靠消息:Redis VS RabbitMQ

背景 我正在制作一个发布/订阅典型应用程序,发布者向消费者发送消息。 发布者和消费者在不同的机器上,它们之间的连接偶尔会中断。 目的 这里的目标是确保无论连接发生什么事情,或者机器本身,发布者发送的消息总是被消费者接收。 消息的sorting不是必须的。 问题 根据我的研究,RabbitMQ是这种情况下的正确select: Redis将RabbitMQ作为Logstash和elasticsearch之间的数据代理/消息传递系统 然而,尽pipeRabbitMQ有一个关于发布和订阅的教程,但本教程不会将我们介绍给持久队列,也不会提到确认我认为是确保消息传递的关键。 另一方面,Redis也能做到这一点: http://abhinavsingh.com/customizing-redis-pubsub-for-message-persistence-part-2/ 但我找不到任何正式的教程或示例,而我目前的轻描淡写导致我相信,持久的队列和消息确认必须由我们来完成,因为Redis主要是内存数据存储而不是像RabbitMQ这样的消息代理。 问题 对于这个用例,哪个解决scheme最容易实现? (Redis解决scheme还是RabbitMQ解决scheme?) 请提供一个与您认为最好的例子的链接!

在哪里存储JWT撤销信息,mongoDB或Redis?

目前正在使用JWT实现MEAN堆栈用户注册/login系统,而不是使用所有身份validation的会话。 为了能够撤销JWT,我需要将一些JWT信息存储为令牌黑名单的一部分。 我最初的想法是使用MongoDB存储列入黑名单的令牌,但Redis是否也适合? 我在这种情况下犹豫避免Redis的原因是,如果服务器崩溃/重新启动,那么令牌黑名单将丢失,而对于MongoDB,黑名单将保持不变/持续。 任何意见,将不胜感激。 谢谢。

使用ioredis发送任意命令到redis

有没有可能发送任意命令到Redis使用ioredis的节点JS? 例如,我正在使用新的RediSearch模块,并希望使用以下命令创build一个索引: FT.CREATE test SCHEMA title TEXT WEIGHT 5.0 我将如何使用ioredis发送此命令?