⭐背景
大家好,我是yma16,本文分享 node_koa后端——连接redis缓存数据。
面向对象:前端初学者、前端转后端的同学
该系列往期文章
node_koa后端——初始化配置jwt和swagger的koa框架
redis
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
⭐初始化安装配置 redis
redis客户端下载 redis.io/download/
下载一个redis manager,客户端可视化管理redis。
koa安装ioredis依赖
# npm install ioredis
ioredis
ioredis 是一个用于 Node.js/io.js 的 Redis 客户端
💖封装 redis 缓存读取数据的方法
新增utils/redis/index.js
const Redis = require('ioredis')
// 创建 Redis 客户端实例, 连接指定的 Redis 服务器
const redis = new Redis({
port: 6379, // redis服务器默认端口号
host: '127.0.0.1' // redis服务器的IP地址
})
// 配置 键值对
const setRedisConfig=(key,value)=>{
redis.set(key, value);
}
// 获取键值对
const getRedisKey=async(key)=>{
return new Promise((resolve,reject)=>{
// ioredis supports the node.js callback style
redis.get(key, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
})
}
module.exports={
getRedisKey,
setRedisConfig
}
配置账号密码的配置
new Redis({
port: 6379, // Redis port
host: "127.0.0.1", // Redis host
username: "default", // needs Redis >= 6
password: "my-top-secret",
db: 0, // Defaults to 0
});
💖添加一个post api 往redis存数据
const Router = require('koa-router');
const router = new Router();
const {setRedisConfig } =require('../../utils/redis/index');
router.post('/redis/data', async(ctx) => {
try {
const bodyParams = ctx.request.body
const { key, value } = bodyParams
const resut = await setRedisConfig(key, value)
ctx.body = { code: 200, msg: 'success!', data: resut };
} catch (e) {
ctx.body = { code: 0, data: e, msg: 'fail' };
}
});
💖添加一个get api 往redis取数据
const Router = require('koa-router');
const router = new Router();
const {setRedisConfig } =require('../../utils/redis/index');
router.get('/redis/data', async(ctx) => {
try {
const queryParams = ctx.request.query;
const { key } = queryParams;
const value = await getRedisKey(key)
ctx.body = { code: 200, msg: 'success!', data: value };
} catch (e) {
ctx.body = { code: 0, data: e, msg: 'fail' };
}
});
⭐测试
💖打开redis
注意这里没有配置账号密码
💖打开redis-manager
管理查看redis
💖运行koa 请求post redis接口
apifox模拟请求接口
api: http://localhost:3333/api/redis/data
method: post
data: {
"key":"juejin_name",
"value":"yma16"
}
💖使用manage查看redis的存储
存储成功!
💖运行koa 请求get redis接口
apifox模拟请求接口
api: http://localhost:3333/api/redis/data?key=juejin_name
method: get
读取参数成功!
⭐结束
本文分享到这结束,如有错误或者不足之处欢迎指出!
👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 最后,感谢你的阅读!