当前位置: 首页 > news >正文

Nodejs使用redis

框架:koa,通过koa-generator创建

redis: 本地搭建,使用默认帐号,安装说明地址以及默认启动设置:https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/

中间件:koa-generic-redis, koa-redis

1. 配置中间件:

const session = require('koa-generic-session')
const RedisStore = require('koa-redis')


app.use(session({
  key:"koa", // 设置返回给浏览器的包含sessionId的cookie的key
  store: new RedisStore({ // 连接本地redis的信息,如果需要密码,需要设置/etc/redis/redis.conf 的 
    host:"localhost",
    port:"6379",
    password:"111111"
  }),
  ttl:60 * 1000
}))

2. sessionID保存原理解析

router.get('/session',async (ctx,next)=>{
  if(!ctx.session.user){
    ctx.session.user={name:'xxx'} // 如何没有session
  }
   ctx.body = ctx.session.user
})

ctx.session.user = {name:'xxx'}, 这行代码会触发生成sessionId,koa-redis中间件会将值写入到redis,如图所示:

koa-generic-session中间件负责生成sessionId,并将中间件配置的key的值作为cookie的名字,sessionId作为值,返回到浏览器客户端。如图所示:

当浏览器再次请求的时候,请求头会携带cookie,如图:

接口相应的逻辑里,可以从请求头的cookie里获取sessionId,后端从redis里获取sessionId,如果没有表示已过期(redis可以设置过期时间)。完整的cookie+sessionid会话过程就整理清楚了

相关文章:

  • 解决leetcode第3480题删除一个冲突对后的最大子数组数目
  • Jocker靶机全面解析:漏洞挖掘、渗透测试与防御策略
  • RuoYi-Vue路由,Node
  • HOVER:人形机器人的多功能神经网络全身控制器
  • Leetcode-回溯-组合型
  • Vue 中如何使用 nextTick?
  • 解决uni-app授权弹框华为审核拒绝
  • OpenAI--Agent SDK简介
  • linux入侵排查-综合日志分析
  • halcon几何测量(一)3d_position_of_rectangle
  • 【QT:多线程、锁】
  • 自然语言处理 | 文本清洗的20种核心策略:从数据噪声到信息价值
  • YunSDR AIR:从架构革新到智能融合的演进之路
  • HTML 专栏总结:回顾与展望
  • ABAP PDF预览
  • 「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数
  • win10搭建opengl环境搭建并测试--输出立方体球体和碗型并在球体上贴图
  • 使用WebDAV将文件传输到实时(RT)目标 转发
  • 3.数据探索与可视化基本图形(直方图、箱线图、散点图)——Python数据挖掘代码实践
  • 《多语言实时交流辅助系统前端的设计与实现》开题报告
  • 宁波银行一季度净利74.17亿元增5.76%,不良率持平
  • 特朗普声称中方领导人打了电话,外交部:近期中美元首没有通话
  • 今年我国电影票房破250亿领跑全球,“电影+”带动文旅消费热潮
  • 上海“生育友好岗”已让4000余人受益,今年将推产假社保补贴政策
  • 从世界工厂走向全球创新中心,上海车展为何成为全球汽车行业风向标?
  • “梅花奖”快闪走入上海张园,朱洁静在石库门前起舞