【Vue全家桶+SSR+Koa2全栈开发】(五) Redis基础

写在开头

大家好,这里是 lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退。金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理, github传送门,觉得不错,点个Star★,好运连连,Offer终究鼠于你,持续更新中。另外,也可以关注微信公众号: 小狮子前端Vue,源码以及资料今后都会放在里面。

Redis基础


cookie 和 session 引入

这里就要扯到 cookiesession的相关知识点了,划重点啦!

服务端的程序如何去识别客户端的状态,大家知道,http是无状态的,推荐阅读:如何学好前端,白嫖知识

比如现在有个用户A,它访问了服务器程序,那服务器程序如何知道下一次再访问的时候还是A呢?

因此,对于这一块就要用到非常重要的概念,session,当然,这个session可不是浏览器的,而是服务器的,它是用来存储用户的信息的。

那么,服务器的 session是如何保持在客户端呢?

这个时候呢,又要引出另一个非常重要的概念,浏览器中的 cookie

综上所述,cookiesession 的关系是:服务端用 session 来保存用户的状态,然后客户端用 cookie 来保存 session ,服务器端把 session 种植到 cookie 中,然后下次访问时,cookie 会携带着 session ,进而达到一个身份认证的效果

redis概念&安装

上文我们知道了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的安装和配置–图文教程

koabash界面,执行如下命令,完成 koaredis 的连接

npm i koa-generic-session koa-redis
redis-server.exe redis.windows.conf

启动 redis 服务

一、[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

谢谢您的支持!✿✿ヽ(°▽°)ノ✿

学如逆水行舟,不进则退
发布了607 篇原创文章 · 获赞 2313 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/weixin_42429718/article/details/105505026