课程章节:第3章 技术选型和知识点介绍(下) 3-6
课程讲师:双越
课程内容:
使用 session 实现登录的机制
session表示一次会话,在服务端是一个集合。我们使用session存储和用户相关的信息,那么服务器怎么知道当前用户是哪个session呢?使用cookie。
浏览器访问服务器,会携带cookie。将一个 userId 属性存到cookie中,在服务端拿到cookie中的userId,再到session 集合中,找到这个userId,就能确定用户的身份了。
为什么把 session 存到 redis 中?
如果session存在nodejs进程中,设置一个变量来保存session,来一个用户就往里塞,那么它占用的内存会越来越大。但是,操作系统会限制每一个进程的最大可用内存。比如在32位系统中,node 进程的最大可用内存是0.7g,如果64位系统,最大可用内存是1.4g。所以,如果把session放到内存中,是没法保证性能和稳定性的。
服务器的内存可能是8g,16g,甚至更大,但它给一个node进程的最大可用内存也就1个多g。如果开启多个进程的 nodejs,虽然看起来 session 可用的内存多了,但进程之间的数据是隔离的,如果用户先访问了进程1,存储了session,过了一会又访问了进程2,此时该进程中的session并没有用户的数据。
基于以上两个原因,我们把session存到redis 中。
课程收获:
这节课学习了实现登录功能的理论知识和技术原因,比较偏底层,对于扩展知识面很有帮助。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦