草庐IT

nodejs-demo

全部标签

javascript - 创建 NodeJS + Redis 应用程序导致错误,退出代码为 139

我的app.js包含以下内容:varexpress=require('express'),http=require('http'),path=require('path'),redis=require('redis'),client=redis.createClient();varapp=express();app.configure(function(){app.set('port',process.env.PORT||3000);app.set('views',__dirname+'/views');app.set('viewengine','jade');app.use(expr

node.js - 如何使用 nodejs、redis 和 mongodb 设计基于聊天的应用程序?

我们有一个具有聊天功能的iOS应用程序。目前它适用于长轮询。现在我们正在尝试修改它以使用套接字。关于套接字,我们已经开始进行研究,似乎最好的选择之一是将nodejs与socket.io一起使用。然后我们使用redispub/sub来管理消息传递和存储。经过对redis的一些研究,推荐的用法表明存储的数据应该适合内存。但是,我们有一个有点大的数据库。我们想存储整个聊天记录。所以我们开始计划使用redis作为缓存数据库,将在线用户的聊天记录(可能不是全部)存储起来,并在从redis到mongodb/simpledb(或两者都立即)下线后写入实际对话).所以总结一下,我们即将决定使用node

node.js - 在 NodeJS 上缓存 - Redis vs CouchDB vs ..?

我使用MongoDB来持久化数据,使用Redis来存储session。我需要缓存在MongoDB上完成的复杂聚合查询,所以我想知道您对NodeJS上的缓存有何看法,特别是使用Redis或CouchDB进行缓存。哪个性能更好?如果我错了请纠正我,但是在可伸缩性方面是否有一个专门用于缓存的不同数据库更好? 最佳答案 这取决于你想做什么;但基本上,Redis的性能比CouchDB高得多,也更适合用作缓存系统。Redis是一个内存数据库(具有同步到磁盘的选项),具有在特定时间后使数据过期的功能。Redis经常用于缓存,所以在可扩展性方面可能

node.js - 等待所有 promise 在 nodejs 中用 Bluebird 完成

用bluebird在nodejs中等待所有promise完成的最佳方法是什么?假设我想从数据库中选择记录并将它们存储在redis中。我想出了这个loadActiveChannels:function(){returnKnex('game_channelsasch').where('ch.channel_state','>',0).then(function(channels){varpromises=[];for(vari=0;i不确定它是否像我预期的那样工作。所有条目都在redis中,但console.log显示空数组。它不应该包含一个“OK”数组,因为它是redis在履行promi

node.js - 如何使用 laravel 5.4 中的 LRedis 和 nodejs 中的 socket.io 向同一 channel 中的特定用户发送 apns 通知或消息?

我在客户端使用socket.io在Laravel5.4中创建聊天应用程序,同时向目标用户发送APNS通知。当用户向目标用户发送消息时执行此操作时,消息发送不止一次意味着它取决于与Nodesocket.io服务器连接的连接数,我认为这意味着我的channel(“消息”)循环该消息连接的客户端数量,因此它在接收端显示不止一次。这是我的发件人端(Laravel):$redis=LRedis::connection();$data=['message'=>$msg,'user'=>$auth,'music'=>$music,'target_user'=>$target_user];$redis

node.js - 为 NodeJS Lambda 函数重用 Redis 连接

我编写了以下Lambda函数:exports.handler=(event,context,callback)=>{constredis=require('redis');constredis_client=redis.createClient({host:'hostname',port:6379});redis_client.set("foo","bar");redis_client.get("foo",function(err,reply){redis_client.quit();callback(null,reply);});};这很好用。但是,我想在Lambda调用之间重用Re

node.js - 使用 redis 的 NodeJS - 安装 hiredis 还是不安装?

我正在将redis集成到我的NodeJS服务器应用程序中,我正在尝试确定是否使用hiredis命令安装node_redis。我假设如果它在某种程度上没有用,那么安装它的选项就不会可用。同时,node_redis的github页面(https://github.com/mranney/node_redis)明确指出,升级到较新版本的nodeJS可能会导致添加的hiredis选项出现问题。有人可以列出添加hiredis与不添加hiredis的不成文的利弊吗?使用C库可以提高多少性能? 最佳答案 对于生产,我会认真考虑使用hiredisp

javascript - 如何检测客户端与nodejs中的redis断开连接?

我正在使用图书馆node_redis作为我正在编写的微服务消息客户端的客户端。客户端从他们的发件箱中的应用程序获取消息,他们需要将这些消息发送到其他服务。一切都运行良好,但我正在尝试在使用redis客户端与redis服务器通信的应用程序部分建立一些弹性。我的想法是redis客户端-服务器连接状态应该对客户端高可用。我的意思是,如果连接断开,我想在一秒钟内知道,而不是默认的300秒超时。目前我正在使用托管在AWS上的免费redislabs层,但我应该将其移动到我的kubernetes集群上它自己的容器中运行。我需要知道网络中客户端连接的状态,因为我不想在网络条件不正确时不发送消息,并且不

javascript - Nodejs 在发布/订阅中从客户端发布

我正在尝试在nodejs中构建一个小应用程序来发布和订阅。我被困在如何从客户端发布。这是我的代码。这是我的服务器代码(server.js)varexpress=require('express'),app=express(),http=require('http'),server=http.createServer(app);app.use(express.bodyParser());app.get('/',function(req,res){res.sendfile(__dirname+'/public/index.html');});app.post('/publish/:chan

node.js - nodejs redis Q promises,如何让它发挥作用?

我正在尝试从Redis获取一些值,将它们组合起来并最终发送。但我就是无法兑现这些promise。这是来自redis的简单get函数client.get('user:1:id',function(err,data){//hereIhavedatawhichcontainsuserID});client.get('user:1:username',function(err,data){//hereIhavedatawhichcontainsusername});现在我想获取ID和username并发送它们,但我不知道如何实现。我设法让它与回调一起工作,但结果非常困惑,所以我尝试将匿名函数包