【Express.js】集成Redis

这篇具有很好参考价值的文章主要介绍了【Express.js】集成Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

集成Redis

本节我们介绍在 express.js 中集成 redis.

Redis是一个高性能的key-value内存数据库,支持事务、队列、持久化等特性,常用于高并发性能场景。

准备工作

  • 创建一个 express.js 项目(本文基于evp-express-cli)
  • 在开发环境下安装redis
  • 安装redis.js:
npm i redis

创建代理

正常的项目都是分层的,为了避免循环依赖,本文采用代理类构造单例的方式来创建redis连接。

redisProxy.js:
在构造器内创建redis连接,并监听个别事件,最后把连接赋给client成员变量。再定义一个静态的获取实例方法,调用时实例若为空,就构建实例:

const Redis = require('redis');
const logger = require('./logger');

class RedisProxy {
  /**
  * @type {RedisProxy}
  */
  _instance = null;
  constructor() {
    const client = Redis.createClient({
      url: `redis://127.0.0.1:6379`,
    });
  
    client.on('connect', () => {
      logger.info('Redis connected!');
    });
    
    client.on('error', err => {
      logger.error('Redis Client Error!', err);
      process.exit(1);
    });

    client.connect();
    this.client = client
  }

  static instance() {
    if(!this._instance) {
      this._instance = new RedisProxy();
    }
    return this._instance;
  }
}

然后把redis导出来:

async function init() {
  return RedisProxy.instance();
}

module.exports = {
  init,
  instance: RedisProxy.instance(),
};

然后在任意其它地方调用 redisProxy.instance 即可获取单例,在从单例中获取client即可操作redis.

const RedisProxy = require('../utils/redisProxy');
const redisProxy = RedisProxy.instance;
const redis = redisProxy.client;

redis.set("name", "evpantchouli");  //设置键
console.log(await redis.get("name"); //取键

你可以自己手动配置一遍,也可以使用evp-express-cli作为手脚架创建项目并选择redis模板。

关于redis.js的详细用法请见官方文档: http://npmjs.com/package/redis文章来源地址https://www.toymoban.com/news/detail-637262.html

下一节-集成RabbitMQ

到了这里,关于【Express.js】集成Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatgpt把脉知识星球

    昨天开通了chatgpt plus,20美金一个月,试试chatgpt4.0,针对知识星球这个产品,有如下对话,原文摘录(复制粘贴后稍微做了部分版式调整,内容无修饰) 我:知识星球 这个产品,请点评一下 chatgpt:知识星球是一个中文社交学习平台,创立于2016年。该平台致力于连接专业人

    2024年02月02日
    浏览(32)
  • 01. 组建知识星球服务体系

    因为想要进行各种技术点的训练和学习,开发中需要使用各种各样的开源技术框架,苦于没有基础服务支撑,所以想要建立一个专门的服务支撑系统,每年购买的云服务器配置底下,安装一个Jenkins都跑不起来,所以自己购买了一个物理主机,内存加装到 32G ,搭建自己的私人

    2024年02月09日
    浏览(39)
  • 如何用知识星球年入50万

    使用知识星球年入50万的话,那么你的社群收费必须超过60万,因为星球会有20%的手续费。 年入50万并不是一笔小数目,那么一定少不了优质的内容以及引流渠道,这二者缺一不可。 优质的内容和引流的渠道都需要题主自己去把控,但是有更便捷的方式可以年入50万,那就是选

    2024年02月08日
    浏览(70)
  • 学习Node.js需要哪些JavaScript知识

    Lexical Structure ( 词法 ) JavaScript 的词法(lexical grammar)。ECMAScript 源码文本会被从左到右扫描 ,并被转换为一系列的输入元素,包括 token、控制符、行终止符、注释和空白符。ECMAScript 定义了一些、字面量以及行尾分号补全的规则。 Expressions ( 表达式 ) JavaScript 中的

    2024年02月03日
    浏览(45)
  • uniapp实战项目 (仿知识星球App) - - 效果篇

    实战项目名称:仿知识星球App 技术栈:前端 = uni-app ( 后端:Node.js + Mysql + Apollo + Graphql ) 已实现功能:微信登录,创建星球,内容管理,星球管理 项目git地址:请点击访问 项目最终效果图:@点击访问效果图,欢迎关注收藏订阅专栏!!! 文章会先按照 ① uni-app端 、 ②

    2024年02月02日
    浏览(42)
  • 最全AI领域知识星球:GoAI的学习社区

    👨‍💻 作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。 ✨ 公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等,更有交流群分享宝藏资料,关注公众号回复“加群”或➡️ 点击链接 加群。 💚导读:

    2024年04月23日
    浏览(32)
  • 【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(四)

    BOM(Browser Object Model): 浏览器对象模型 其实就是操作浏览器的一些能力 我们可以操作哪些内容 获取一些浏览器的相关信息(窗口的大小) 操作浏览器进行页面跳转 获取当前浏览器地址栏的信息 操作浏览器的滚动条 浏览器的信息(浏览器的版本) 让浏览器出现一个弹出

    2024年01月18日
    浏览(49)
  • 华为OD机试 - 宜居星球改造计划(Java & JS & Python)

    题目描述 2XXX年,人类通过对火星的大气进行宜居改造分析,使得火星已在理论上具备人类宜居的条件; 由于技术原因,无法一次性将火星大气全部改造,只能通过局部处理形式; 假设将火星待改造的区域为row * column的网格,每个网格有3个值,宜居区、可改造区、死亡区,

    2024年02月14日
    浏览(35)
  • 【华为OD机试真题2023B卷 JAVA&JS】宜居星球改造计划

    知识点广搜  时间限制:1s 空间限制:32MB 限定语言:不限         2XXX年,人类通过对火星的大气进行宜居改造分析,使得火星已在理论上具备人类宜居的条件;由于技术原因,无法一次性将火星大气全部改造,只能通过局部处理形式;假设将火星待改造的区域为row *

    2024年02月10日
    浏览(41)
  • JavaScript全解析——Express框架介绍与入门

    本文为千锋资深前端教学老师带来的【JavaScript全解析】系列,文章内含丰富的代码案例及配图,从0到1讲解JavaScript相关知识点,致力于教会每一个人学会JS! 文末有本文重点总结,可以收藏慢慢看~ 更多技术类内容,主页关注一波! 目录 express 的基本使用 express 是什么? 1.基

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包