当前位置: 首页 > news >正文

express使用redis

我用的pnpm

pnpm add express redis
const express = require('express');
const redis = require('redis');
var app = express()
var port = 3000
// 创建 Redis 客户端实例
const redisClient = redis.createClient({url: 'redis://172.17.0.185:6379' ,password: 'b7371d927aec647d',db: 0,
});
// 连接 Redis 服务器
// 异步连接Redis
(async () => {try {await redisClient.connect();console.log('Redis连接成功');} catch (err) {console.error('Redis连接失败:', err);process.exit(1); // 如果Redis连接失败,退出应用}
})();
// 将redisClient挂载到app实例上,方便后续路由使用
app.locals.redisClient = redisClient;// ========== Redis 初始化结束 ==========// 错误处理中间件中添加 Redis 关闭逻辑
process.on('SIGINT', () => {redisClient.quit().then(() => {console.log('Redis连接已关闭');process.exit(0);});
});app.get('/', (req, res) => {res.send('Hello World!')
})// 设置 Redis 值的路由
app.get('/redis/set', async (req, res) => {try {const { key, value, expire } = req.query;// 检查参数是否齐全if (!key || !value) {return res.status(400).json({success: false,message: '缺少必要参数: key 和 value'});}// 设置值await req.app.locals.redisClient.set(key, value);// 如果提供了过期时间,设置过期时间(单位:秒)if (expire) {await req.app.locals.redisClient.expire(key, parseInt(expire));}res.json({success: true,message: 'Redis 值设置成功',data: {key,value,expire: expire ? parseInt(expire) : null}});} catch (err) {console.error('设置 Redis 值时出错:', err);res.status(500).json({success: false,message: '设置 Redis 值失败',error: err.message});}
});// 获取 Redis 值的路由
app.get('/redis/get', async (req, res) => {try {const { key } = req.query;// 检查参数是否齐全if (!key) {return res.status(400).json({success: false,message: '缺少必要参数: key'});}// 获取值const value = await req.app.locals.redisClient.get(key);if (value === null) {return res.json({success: true,message: '未找到该 key 对应的值',data: null});}res.json({success: true,message: 'Redis 值获取成功',data: {key,value}});} catch (err) {console.error('获取 Redis 值时出错:', err);res.status(500).json({success: false,message: '获取 Redis 值失败',error: err.message});}
});
app.listen(port, () => {console.log(`Example app listening at http://localhost:${port}`)
})

测试地址

http://localhost:3000/redis/set?key=test2&value=world&expire=60
http://localhost:3000/redis/get?key=test2
http://www.wxhsa.cn/company.asp?id=6673

相关文章:

  • day07 课程
  • 111
  • 排序实现java - 教程
  • .net core 发布到 iis 步骤
  • kylin SP2安装mysql8.4.5
  • 微信社群机器人接口
  • C++的枚举类
  • Revit二次开发 钢筋生成API(一)
  • 方法
  • 详细介绍:PHP基础-语法初步(第七天)
  • 如何通过Python SDK 删除 Collection
  • maven项目连接DM数据库和基本sql使用
  • 【中国计算机学会CCF主办】第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026)
  • 图片 - voasem
  • 面试时让你设计一个“朋友圈点赞”功能测试,如何回答才出彩?
  • 企训宝教育培训微信小程序系统
  • Inventor Professional 2026.1.1 产品设计与工程制图
  • 叮当计步微信小程序系统
  • fetch-event-source踩坑sse(getReader)后续 IOS全量返回问题
  • P12508 「ROI 2025 Day2」程序员的日常
  • 手机上有哪些比较好用的待办事项提醒工具 - 指南
  • Redis源码学习 -- 数据类型编码 -- List - -蓝蜗牛
  • 乌班图无法登录桌面,只能终端登录用户。且有网拉不了包(DNS问题)
  • 事半功倍是蠢蛋53 tornado接口报错
  • 完整教程:云手机的技术架构可分为哪些
  • AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
  • Arkime:大规模开源网络分析与数据包捕获系统
  • kylin SP2安装mysql 8.0.41
  • SAP采购订单数据获取
  • get和post如何理解