session放数据库里解决丢失的问题
Posted 飘然离去
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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放数据库里解决丢失的问题的主要内容,如果未能解决你的问题,请参考以下文章