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会话过程就整理清楚了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值