Redis认知、安装与操作
MongoDB:动态数据库,如游戏中需要频繁地保存人物的坐标
Oracle:收费,企业级
mac要安装homebrew(包管理工具)
window安装Redis程序运行教程
命令行Redis操作
启动: redis-server 启动Redis服务器
连接客户端: redis-cli 操作Redis
port: 6379
设置或修改Reids: set name ‘js++’
获取Redis: get name
获取Redis所有key:keys *
删除Redis key: del name
退出客户端: exit
服务端项目安装redis依赖
npm i redis -S --registry=https://registry.npm.taobao.org
Cookie、Session与Redis夯实基础
http是无状态的,使用cookie和session这种会话机制,就产生了有状态的结果
session主要存储用户信息
响应头中有Set-Cookie字段,浏览器看到后会自动将相应用户信息存储到cookie,下次用户再请求该服务器(会带上cookie),服务器就能知道用户信息
- 后端配置了加密
redis的key名带txclass.sess前缀(prefix),存的session的key名为
txclass.sessl......w
,键值为对象(含cookie、uid、username、nickname、gender)
Set-Cookie中,浏览器的cookie存储键名为txclass.sid
(name),键值是redis的键名l......w
- 再次去请求时,响应头里就没有Set-Cookie了,但请求头里仍然带Cookie
session的存储问题
- 系统会限制每个进程的最大可用内存 - > 启动多个进程
- 进程之间数据隔离,无法相互访问
session存储到Redis
session的使用
- session数据量小
- session不考虑数据丢失的问题
- session访问度很高,要求访问快,性能高
什么情况不适合Redis
- 操作频率不高的数据(除了慢一点,就没必要占用内存)
- 数据无法承受丢失的结果(存在内存中,丢失风险变高,存在硬盘中一般不会丢失)
- 数据量大,内存无法承受
在Koa2项目中操作Redis
- koa-redis: Koa2操作redis依赖
- koa-generic-session: Koa2操作session
npm i koa-redis koa-generic-session –S