Tag: redis

在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发送此命令?

当使用Promise.all时,Node_Redis HGETparsing为布尔数组

我一直在深入研究redis,并且使用redis进行工作,因为它只是数据存储(我知道这不是redis的预期目的,但是我从学习命令和整体使用Node上的redis获益) m使用Node_Redis。 这是我想完成的(所有在redis中):我尝试使用他们的电子邮件检索用户。 问题在于:我有一个Promise.all调用,它接收所有的电子邮件(键)并映射到HGET命令。 当Promise.all解决我期望它用一个用户对象数组解决,但它最终解决了一个布尔值数组(即[true,true,true])。 这是/users的逻辑 router.get("/", (req, res) => { client.lrange("emails", 0, 1, (err, reply) => { if (err) return console.log(err); if (reply) { Promise.all( reply.map(email => { return client.hgetall(email, (err, reply) => { if (err) return console.log(err); console.log("reply for hgetall", reply); // this prints a user object correct, but Promise.all still resolves to […]

节点caching与Redis进行简单caching

我打算在Node.js应用程序中使用caching,以避免数据库读取操作。 只有less量的数据(而不是每次从数据库读取相同的数据)。 我打算在每台服务器上都有一个本地caching。 我应该去Node Cache( https://www.npmjs.com/package/node-cache )还是Redis? 哪个会更快更高效?

从nodejs直接(非tcp)连接到redis

大家好 我查看了redis-node-client源代码(相关部分如下所示),我发现它通过基于TCP的“net”包连接到redis。 370行 exports.createClient = function (port, host, options) { var port = port || exports.DEFAULT_PORT; var host = host || exports.DEFAULT_HOST; var client = new Client(net.createConnection(port, host), options); client.port = port; client.host = host; return client; }; 我想知道是否有一个更直接的客户端的Redis,最好通过域套接字或类似的东西。 我使用本地redis,作为caching,没有通过电线,所以它不必编码/解码消息与TCP标头… 谢谢

在Node.js中从Redis中检索数据

我刚刚发现js是多酷的,并且正在寻找持久的选项。 我看到你可以使用redis-client将数据存储在redis中,并且能够存储数据,就像这样: var redis = require('redis-client'); var r = redis.createClient(); var messege = {'name' => 'John Smith'}; var type = "Contact"; r.stream.on( 'connect', function() { r.incr( 'id' , function( err, id ) { r.set( type+':'+id, JSON.stringify(messege), function() { sys.puts("Saved to redis"); }); }); }); 这存储一个键值为jsonstring。 然而,我试图从redis中检索所有的密钥,并在它们周围循环。 我很难弄清楚这样做的方式,有谁能指出我的方向? 干杯 EEF

如何用node.js + redis处理用户和套接字对

直截了当地说:我使用node.js,socket.io和redis作为私人聊天系统。 在连接用户传递他的网站id(userID)到node.js服务器。 他可能有多个连接,所以我必须以某种方式配对每个连接的socketID和用户ID。 我一直在考虑使用redis来存储userID-> sessionID对。 但是,当用户断开连接,我需要从redis中删除这对,但我只有socketID不是用户ID,所以我不能通过该键select.. 现在,我接近这个错误的方式,或者我应该同时存储userID-> socketID和socketID-> userID对? 也许有人能提供更优雅的解决scheme?

在node.js中构build映像服务的最佳方法

所以我有这个服务器应用程序运行在Google AppEngine上,我想迁移到node.js. 我主要关心的是构build一个类似于强大的GAE blobstore / imageservice组合的API来托pipe和提供用户上传的图片。 我对node.js真的很陌生,我只读过一些文档,查看了一些video,到目前为止一直在播放节点。 我想了解什么是最好的解决scheme: 主持图片 通过高效的caching系统为他们服务 目前,我倾向于Redis存储和caching图片,我还没有看所有的节点模块(有很多!)。 这样的应用程序将select什么样的架构?