node操作redis轻量级数据库

虽然身为前端但是目标为全栈的我,在做项目的时候后端经常会返回一个token给我作为每个接口的秘钥。一开始觉得token没有什么,但是闲下来的时候就会去思考这个东西。因为对服务端还有客户端的session的认识并不是很深(本人起步晚没办法有些东西没来的急学)因此不去考虑这个东西。


想法一:请求登录接口会生成一个token并存起来,token是会变的不可能每生成的一个token都适用于这个用户这不是乱了。因此第一个想到的就是存到数据库。但是这边有个问题就是每次请求接口都要去查数据库这显然是不合理的数据库亚历山大。

想法二:居然token一定要存,且要考虑到数据库的压力。这里我找了一个轻量级的数据库专门用来存储token。redis的读写数据的速度比起mysql和mongodb总体来说快了不少,用redis来管理token再适合不过了。

redis安装

redis的安装还是很简单的http://www.runoob.com/redis/redis-install.html
要进行redis数据库操作要记得开启redis数据库,找到安装目录启动redis-serve

node(koa2)操作数据库

koa操作redis数据库需要引入koa-redis中间件

npm install koa-redis

const redis = require('koa-redis') //koa操作redis数据库 
const clientRedis = new redis().client //获取redis客户端(没有该默认端口的情况下)
//const clientRedis = new redis().client('8888','127.0.0.1')//改端口连接方式

我将相关的操作放到了路由中执行(不清楚路由的https://blog.csdn.net/qq_40816649/article/details/87895521

const save    = await clientRedis.set(`${ctx.request.body.name}`,token)//存到redis成功返回为OK
const all     = await clientRedis.keys('*')//查看keys(redis数据结构为键值对形式)
const getData = await clientRedis.get(`${verify.name}`)//取到redis
const delData = await clientRedis.del('name')//删除redis删除成功为1

redis的存储方式是键值对(key-value)的存储方式存储的时候set(键,值),查和改都是直接插键就行了。

猜你喜欢

转载自blog.csdn.net/qq_40816649/article/details/88863094