【问题标题】:session cache in node js节点js中的会话缓存
【发布时间】:2016-01-14 22:12:13
【问题描述】:

我想为每个用户保存保存在服务器对象中的大数据,并且用户可以使用允许的功能,这取决于会话中的数据。我想问一下 npm client-sessions 是否可以为我做这件事。 我可以保存大数据吗? 它可以与多个用户一起使用吗?

谢谢

【问题讨论】:

    标签: node.js session caching


    【解决方案1】:

    您可以使用session middleware for express (npm)。

    // Use the session middleware
    app.use(session({ secret: 'your-secret', cookie: { maxAge: 60000 }}))
    
    // Access the session as req.session
    app.get('/', function(req, res, next) {
      var sess = req.session
      if (sess.views) {
        sess.views++;
      } else {
        sess.views = 1;
      }
      // ...
    })
    

    更新

    警告 默认的服务器端会话存储 MemoryStore 是 故意不是为生产环境设计的。它会泄漏 在大多数情况下,内存不会超过单个进程, 并且用于调试和开发。

    所以商店有many options,包括redis store

    var session = require('express-session');
    var RedisStore = require('connect-redis')(session);
    
    app.use(session({
        store: new RedisStore(options),
        secret: 'keyboard cat'
    }));
    

    【讨论】:

    • 我在网站上看到:会话数据存储在服务器端,这个很好。但我也看到了警告:默认的服务器端会话存储 MemoryStore 故意不是为生产环境设计的。它在大多数情况下都会泄漏内存,不会扩展到单个进程之外,并且适用于调试和开发。
    • @davidlopez 请检查更新
    • 快速会话和客户端会话有什么区别,推荐什么?
    • @davidlopez 这些会话 (express) 存储在服务器上,而这些 (github.com/mozilla/node-client-sessions) 存储在加密的 cookie 中。但是将数据存储在 cookie 中最终存在用户更改它们的风险。由于有一些高级加密算法,他不可能更改数据,但他可以破坏它。我宁愿将会话数据存储在服务器上。
    • 好的,谢谢。我还有一个问题,我还没有找到合适的会话缓存。我想使用 express- session 但我认为商店的选项不够好根据这个答案 - stackoverflow.com/questions/8749907/…。 Cookie 会话不好,因为我想将数据保存在服务器中,其余的都很慢(req/sec)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2015-12-15
    • 1970-01-01
    相关资源
    最近更新 更多