前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >koa-redis进行数据的读写

koa-redis进行数据的读写

作者头像
biaoblog.cn 个人博客
发布2022-08-11 19:26:08
3090
发布2022-08-11 19:26:08
举报
文章被收录于专栏:web技术开发分享

简单介绍:Redis是一个常用的Nosql数据库,一般用来代替Memcached做缓存服务,同时它也支持数据的持久化,

有着比较广泛的应用场景。在Java中使用redis我们已经比较熟悉了,

那么在node.js和koa.js框架中使用Redis的正确姿势是怎样的呢? 

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 

Redis 与其他 key - value 缓存产品有以下三个特点: 

* Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 

* Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 

* Redis支持数据的备份,即master-slave模式的数据备份。

Redis常用命令可以参考http://www.runoob.com/redis/redis-keys.html

Node.js已经有很多redis相关的库,我在npm.org上搜了下大概有十几个吧,其中经常使用的redis,co-redis。

由于我用koa做web框架,因此就直接用了koa-redis。

这篇文章涉及koa.js,yield生成器和Promise相关的知识,需要先对这些概念有一定的认识。

以下是一些koa-redis的操作

此案例以连接远程的redis为例子,不在本地下载redis和启动服务。

1.安装相关依赖。

代码语言:javascript
复制
npm i koa-generic-session  redis koa-redis koa 

2.配置一些redis的参数

代码语言:javascript
复制
let redisStore = require("koa-redis");
let app = new koa();
let options = {
  host: "127.0.0.1",
  port: 6379,
  db: 0,
  // pass: "UFbCL%162WPB8Eyq",
};

let store = redisStore(options);

redis连接的参数大全:

Options

* {Object} client   redis client

* {String} host     redis connect host (without options.client)

* {Number} port     redis connect port (without options.client)

* {String} socket   redis connect socket (without options.client)

* {String} db       redis db

* {String} pass     redis password

3.进行连接和读写

代码语言:javascript
复制
app.use(
  session({
    store: store,
  })
);
app.use(async function (ctx, next) {
  switch (ctx.url) {
    case "/testKV":
      await store.client.set("test1", "123");
      ctx.body = await store.client.get("test1");
      break;
  }
});


app.listen(1234, () => {
  console.log("koa is run port:1234");
});

全部的代码

代码语言:javascript
复制
let session = require("koa-generic-session");

let koa = require("koa");
let redis = require("redis");

let redisStore = require("koa-redis");
let app = new koa();

let options = {
  host: "127.0.0.1",
  port: 6379,
  db: 0,
  // pass: "UFbCL%162WPB8Eyq",
};

let store = redisStore(options);

app.use(
  session({
    store: store,
  })
);

app.use(async function (ctx, next) {
  switch (ctx.url) {
    case "/testKV":
      await store.client.set("test1", "123");
      ctx.body = await store.client.get("test1");
      break;
  }
});

app.listen(1234, () => {
  console.log("koa is run port:1234");
});

参考文档:https://github.com/koajs/koa-redis

https://blog.csdn.net/offbye/article/details/52452322

https://blog.csdn.net/weixin_42554191/article/details/108967804

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档