zoukankan      html  css  js  c++  java
  • session放数据库里解决丢失的问题

    在编程里是会话的意思
    Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

    当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

    Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。

    **************************

    哎,以前的系统session总是莫名其妙的丢失,放服务器进程里也不行。

    老是丢失,然后客户端就无缘故的退出了。你设置session时间为1个小时也不行。

    最后无奈,把session放数据库里了。哈,问题解决了。

    用了1个星期了暂时没客户反映出问题。

    也许每个人的需求不同吧,但是我仍旧觉得session放数据库里保险。


    **************************
    可以放Mongo也可以放redis里边。

    放redis里边的比较多。

    node中在express session中,我们通常放入redis中就可以了,剩下的他帮我们自己自动管理。销毁等等。

    *************************

    miss lei的项目中:

    var session = require('express-session');

    var RedisStore = require('connect-redis')(session);

    store: new RedisStore(conf.SESSION_REDIS),

    SESSION_REDIS:{
    port: 6379,
    //port: 6379,
    //host: '127.0.0.1'
    host: '10.150.160.136'
    },

    只给了数据库的ip和端口。

    而在miss shen的项目中:

    var session = require('express-session');
    var RedisStore = require('connect-redis')(session);

    options.store = new RedisStore( {retry_max_delay: 5000, max_attempts: 3} );

    ********************************************************************
    ********************************************************************

    ********************************************************************
    下边我们学习一种把session放在mongodb中的。

    setting中的内容:
    module.exports = { 
      cookieSecret: 'myblog', 
      db: 'blog', 
      host: 'localhost',
      port: 27017
    };
    

      

    app.use(session({
      secret: settings.cookieSecret,
      key: settings.db,//cookie name
      cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
      store: new MongoStore({
        db: settings.db,
        host: settings.host,
        port: settings.port
      })
    }));
    

    然后看我们的数据库:

  • 相关阅读:
    java、javaw和javaws的区别
    Hibernate4教程二:基本配置(2)
    Maven入门指南10:Maven的生命周期和插件
    Java中的断言(assert)
    MySQL的数据类型:文本、数字、日期/时间
    面向对象的三大基本特征和五大基本原则
    高内聚低耦合的介绍
    9.7 模拟赛
    16-17学期计划(每周)
    JZOJ 5281 钦点
  • 原文地址:https://www.cnblogs.com/coding4/p/5589697.html
Copyright © 2011-2022 走看看