egg-session 将数据存储到redis

Session 默认存放在 Cookie 中,但是如果我们的 Session 对象过于庞大,
就会带来一些额外的问题:
1.浏览器通常都有限制最大的 Cookie 长度,当设置的 Session 过大时,浏览器可能拒绝保存。
2.Cookie 在每次请求时都会带上,当 Session 过大时,每次请求都要额外带上庞大的 Cookie 信息。
解决方法
egg-session-redis 就提供了将 Session 存储到 redis 中的能力,
在应用层,我们只需要引入 egg-redis 和 egg-session-redis 插件即可。

注意:先安装Redis
1.安装egg-session-redis

npm i egg-session-redis egg-redis --save

2.开启egg-session-redis
config/plugin.ts

// 开启sessionRedis 使session存储到 redis 中
  sessionRedis: {
    enable: true,
    package: 'egg-session-redis',
  },
  redis: {
    enable: true,
    package: 'egg-redis',
  },

3.配置redis
config/config.local.ts开发阶段

 // 配置Redis
  config.redis = {
    client: {
      host: '127.0.0.1',//ip
      port: 6379,//端口号
      password: '',//密码
      db: 0,//数据库
    },
    agent: true,
  };

4.测试
4-1 存储数据

    ctx.session.captcha = {
      code: 'QvT8',
      expire: Date.now() + 60 * 1000, // 一分钟后过期
    };

4-2 进入redis
终端输入

redis-cli -h 127.0.0.1 -p 6379
keys *

得到密钥

 "95f8e50e-8e96-4d7c-8f43-f0571a50facd"

终端输入

 get "95f8e50e-8e96-4d7c-8f43-f0571a50facd"

得到存储数据

"{\"captcha\":{\"code\":\"QvT8\",\"expire\":1659515514495},\"_expire\":1659601854499,\"_maxAge\":86400000}"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值