koa-redis进行数据的读写

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: koa-redis进行数据的读写

简单介绍: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.安装相关依赖。

npm i koa-generic-session redis koa-redis koa
复制代码
2.配置一些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);
复制代码
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.进行连接和读写

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");
});
复制代码
全部的代码

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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
存储 NoSQL 算法
Redis数据组织揭秘:全局哈希表
Redis数据组织揭秘:全局哈希表
6 0
|
3天前
|
NoSQL Redis
redis使用jackson序列化数据配置文件
redis使用jackson序列化数据配置文件
23 5
|
3天前
|
NoSQL Java 关系型数据库
非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载
非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载
7 0
|
4天前
|
分布式计算 NoSQL 大数据
MaxCompute产品使用问题之数据在redis里可以通过接口调用到大数据计算吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
NoSQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之如何确保多并发sink同时更新Redis值时,数据能按事件时间有序地更新并且保持一致性
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
13天前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
32 0
|
15天前
|
SQL 分布式计算 NoSQL
使用Spark高效将数据从Hive写入Redis (功能最全)
使用Spark高效将数据从Hive写入Redis (功能最全)
|
18天前
|
分布式计算 NoSQL 大数据
MaxCompute产品使用合集之自定义udf连接云上vpc网络的redis获取数据的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
22天前
|
NoSQL 关系型数据库 MySQL
Redis进阶-select 1. /xxx 切换数据库DBSIZE- 获取当前数据库中的key的个数flushdb-删除当前数据的所有keyflushall-删除所有表的所有库Re
Redis进阶-select 1. /xxx 切换数据库DBSIZE- 获取当前数据库中的key的个数flushdb-删除当前数据的所有keyflushall-删除所有表的所有库Re
|
22天前
|
存储 缓存 NoSQL
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质