• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

koa框22 扩展session redis

149 0

使用mysql的话,虽然很稳定,但是相对读写来说,速度没有放在内存中快,于是我们可以使用redis

首先是安装

由于redis是针对linux的,window版本则是由微软小组进行转制作维护的,下载地址在github

redis

linux版直接官网下载,或者用宝塔直接装。

window版本的已经很老了,只有3.0,现在官网都6.0了,github是16年更新的。

找到一个非官方的版本,目前更新到5.0了

redis

下载zip文件,解压打开redis server即可。

使用

需要安装两个插件,一个是redis,一个是用于将redis的老方法转为新异步方法的插件bluebird

npm i redis bluebird
const redis = require("redis");
const bluebird = require("bluebird");

const client = redis.createClient({
    host: "localhost"
});
bluebird.promisifyAll(redis.RedisClient.prototype);

引入插件,然后redis先连接,由于没有设置用户名密码,所以只需要host连接本地。

然后调用bluebird的方法,将redis里面的方法prototype传入。

这样就完成了转换。

我们使用的话,依旧是使用session的三个生命周期。

get

async get(key, maxAge) { //获取
    let data = await client.getAsync(key);

    if (!data) return {};

    try {
        return JSON.parse(data);
    } catch (e) {
        return {};
    }
},

由于使用了转换,所有的redis的方法,原来是get的,要改为getAsync

由于redis有一个自动清理过期的特性,所以我们只需要判断有没有对应的session即可。

而且redis获取的数据,不是数组,而是一个字符,所以我们要对其进行JSON转换,如果能转换成功就返回,不能就返回一个空的。

set

设置话的,原来我们可能就使用:

await client.setAsync(key, JSON.stringify(session));

但是我们要使用redis的过期时间特性,要换一个方法

async set(key, session, maxAge) { //设置

    //设置过期时间和值
    await client.psetexAsync(key, maxAge, JSON.stringify(session));
},

这样就行了,使用psetexAsync方法,第一个参数为key,第二个为过期时间,毫秒单位,所以不用转换,第三个为要存储的session对象,由于只能存放字符,所以JSON转换。

destroy

async destroy(key) { //删除
      await client.delAsync(key);
    }

使用redis相对来说会非常简单,读写性能也很快。

但是由于是使用内存,所以服务器一重启,就什么都没了,所以redis还会在一定时间内将内容储存到磁盘里面,默认是300秒吧,所以如果在未存储时重启,那么资料就没了。

1
  • 本文分类:Node
  • 本文标签:nodekoaredis
  • 流行热度:已超过 149 人围观了本文
  • 最后更新:2020年08月21日 - 0时34分35秒
  • 发布日期:2020年08月21日 - 0时34分35秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

相关文章

微信收款码
微信收款码