如何一起使用Redis和MongoDb

时间:2018-03-07 12:01:54

标签: mongodb redis architecture

我应该构建一个Web应用程序来跟踪用户活动,我有一些问题需要了解如何使用Redis跟踪在线用户活动,以及Mongo存储该数据以进行分析。

我可以只使用Mongo,但我担心我有很多调用来跟踪用户正在做的事情。所以我想在Redis上写下在线数据,并在它们变老时放入Mongo。当数据对于在线无意义时,我的意思是老了。

我想到了Mongo和Redis之间的一个网关,所以可能是RabbitMQ?。

有什么建议吗? 我应该只使用Mongo?

我写的代码的一个例子:

前端(Angular application / Socket.io):

setInterval(function () {
   socket.emit('visitor-data', {
       referringSite: document.referrer,
       browser: navigator.sayswho,
       os: navigator.platform,
       page: location.pathname
   });
}, 3000);

后端(Node.js / Socket.io)

socket.on('visitor-data', function(data) {
    visitorsData[socket.id] = data;
);

VisitorsData只是一个数组,但我应该构建一个可伸缩的应用程序,所以我不能以这种方式存储数据。

然后我有一些这样的函数来计算数据:

function computeRefererCounts() {

    var referrerCounts = {};
    for (var key in visitorsData) {
         var referringSite = visitorsData[key].referringSite || '(direct)';
         if (referringSite in referrerCounts) {
             referrerCounts[referringSite]++;
         } else {
             referrerCounts[referringSite] = 1;
         }
    }
    return referrerCounts;
}

只是一些数字: 我估计了类似的东西:

  1. 每天100万用户
  2. 每天1500万活动。

0 个答案:

没有答案