redis(一):redis的理解、安装和使用

1.redis的理解

服务端的程序如何去识别客户端的状态,大家知道,http是无状态的,比如说我现在有一个用户a,他访问了服务器程序,那服务器程序如何知道他下一次再访问的时候还是a呢?这就需要用到一个非常重要的概念session,这个session不是浏览器的session,是服务器的session,它是用来存储用户近期的,服务器的session是如何保持在客户端呢?这就要用到浏览器的cookie。所以说session和cookie的关系是服务端用session来保持用户的状态,然后客户端也就是浏览器这层用cookie来保存session,服务器端把session种植在cookie中,然后下次访问的时候cookie会带着这个session过来,进而达到一个身份认证的过程。

说了这么多session和cookie,和redis有什么关系呢?我们的session往哪里存储呢?往服务器中存储?放到内存中,可以。但是当我们的应用程序很大的时候,session容量可能会非常大,比如说淘宝这样的级别。那怎么办?这个时候就需要考虑如何去存储session,有一个非常好用的数据库,就是redis数据库。当然MongoDB数据库可以吗?可以,但是我们需要考虑到读写的性能问题。redis一个快速读写的一个数据库,而且它的使用非常简单,比Mongodb还要简单,就是一个key-value类型的。

上面只是redis的一个使用场景,redis还能做什么呢?redis不能做什么呢?
redis(一):redis的理解、安装和使用

2.为什么一定要用Redis呢?

上面说了Redis的一些使用场景,那么这些场景的解决方案也有很多其它选择,比如缓存可以用Memcache,Session共享还能用MySql来实现,消息队列可以用RabbitMQ,我们为什么一定要用Redis呢?

速度快,完全基于内存,使用C语言实现,网络层使用epoll解决高并发问题,单线程模型避免了不必要的上下文切换及竞争条件;

详细理解Redis,请参考这篇文章:为什么要用redis?-Redis-PHP中文网 https://www.php.cn/redis/424144.html

3.Redis安装

安装步骤:
Redis 安装 | 菜鸟教程 https://www.runoob.com/redis/redis-install.html

注意:
当前进入redis官网下载的安装包并不是上面教程上的安装包,我们需要下载和教程上相同的安装包才能按照上面的步骤正确启动redis,安装包解压后的目录如下:
redis(一):redis的理解、安装和使用
安装包已上传,如有需要请自取,供学习参考使用。

链接:https://pan.baidu.com/s/1YdSJNJh2lx-WmgtHftL_VA
提取码:1kbt

4.在koa项目中安装关于redis的中间件

我们需要安装koa-rediskoa-generic-session这两个中间件。
koa-redis是用koa程序链接redis服务的中间件;
koa-generic-session是用来处理session的中间件;
两个中间件经常是搭配的。

我们进入koa项目安装这两个中间件:

  1. 进入项目
  2. 安装两个中间件
    npm i koa-generic-session koa-redis
    redis(一):redis的理解、安装和使用

参考