【问题标题】:MemoryStore leaking memory in SailsJs AppSailsJs App中的MemoryStore泄漏内存
【发布时间】:2015-12-09 07:51:08
【问题描述】:

几天前,我第一次在生产环境中运行 SailsJs 应用程序。出现了这个警告。

Warning: connection.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and will not scale past a single process.

我知道有人问过类似的question,答案似乎是定期清理 sessionStore 之类的代码。

function sessionCleanup() {
   sessionStore.all(function(err, sessions) {
      for (var i = 0; i < sessions.length; i++) {
         sessionStore.get(sessions[i], function() {} );
      }
   });
}

如何在sails.js 中获取对sessionStore 的引用?

【问题讨论】:

  • 你最好不要使用 MemoryStore。如果您将在生产模式下将数据存储在内存中,那么您将面临许多缩放问题。
  • 如何禁用它?
  • 只需更新您设置会话配置的 Sails 配置。
  • 我的会话配置(config/session.js)只有一个秘密属性。没有其他的。在阅读了 Sails 文档和里面的 cmets 之后,我仍然找不到禁用 sessionStore 的方法。
  • 您还必须为会话存储提供另一个适配器。看看完整的例子 - sailsjs.org/documentation/anatomy/my-app/config/session-js

标签: sails.js


【解决方案1】:

您只需将config/session.js 中的内存适配器替换为另一个适配器,例如Redis。

module.exports.session = {
  secret: '<YOUR_SECRET>',
  adapter: 'redis',
  host: 'localhost',
  port: 6379,
  ttl: <REDIS_TTL_IN_SECONDS>,
  pass: <REDIS_PASSWORD>
  prefix: 'sess:'
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多