大家好,这里是 lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退。金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理, github传送门,觉得不错,点个Star★,好运连连,Offer终究鼠于你,持续更新中。另外,也可以关注微信公众号: 小狮子前端Vue,源码以及资料今后都会放在里面。
这里就要扯到 cookie
和 session
的相关知识点了,划重点啦!
服务端的程序如何去识别客户端的状态,大家知道,http是无状态的,推荐阅读:如何学好前端,白嫖知识
比如现在有个用户A,它访问了服务器程序,那服务器程序如何知道下一次再访问的时候还是A呢?
因此,对于这一块就要用到非常重要的概念,session
,当然,这个session
可不是浏览器的,而是服务器的,它是用来存储用户的信息的。
那么,服务器的 session
是如何保持在客户端呢?
这个时候呢,又要引出另一个非常重要的概念,浏览器中的 cookie
。
综上所述,cookie
和 session
的关系是:服务端用 session
来保存用户的状态,然后客户端用 cookie
来保存 session
,服务器端把 session
种植到 cookie
中,然后下次访问时,cookie
会携带着 session
,进而达到一个身份认证的效果。
上文我们知道了cookie 和 session 在浏览器和服务器端的作用,那么与我们redis
有什么关系呢?
想一想,既然是认证的功能,那我们服务端的session
应该存在哪呢,也许你会想着放入服务器端存储,放入内存当中,这确实是一种方式,没有问题,但当应用程序很大的时候,session
容量特别大的时候呢?例如某宝这样的呢?此时内存肯定不够用了,这个时候就需要一个容器来存储大容量的 session
了,此时存储数据库 redis
就发挥了它的作用了!
关于数据库的话,上文也提到了mongodb
,我们是不是也可以用这个呢?
这个的话,虽然也是一种方式,但我们要考虑读写性能问题,因为 redis
是快速读写类型的数据库,使用灵活方便,是 key-value
型的
为了更加了解redis
,这里我就引用官方介绍了:
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
安装教程
参考:redis安装教程
参考:windows下Redis的安装和配置–图文教程
在 koa
的 bash
界面,执行如下命令,完成 koa
与 redis
的连接
npm i koa-generic-session koa-redis
redis-server.exe redis.windows.conf
一、[9980] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
解决方法:在命令行中运行
redis-cli.exe
127.0.0.1:6379>shutdown
二、Redis (error) NOAUTH Authentication required.解决方法
127.0.0.1:6379>auth "123456"
127.0.0.1:6379>shutdown
not connected>exit
然后重新运行 redis-server.exe redis.windows.conf
,启动成功!
参考:Redis启动报错:Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
如若本文有瑕疵需修改的地方,请提出来,谢谢您的贡献!
欢迎关注微信公众号:小狮子前端Vue
谢谢您的支持!✿✿ヽ(°▽°)ノ✿
学如逆水行舟,不进则退