nodejs链接redis

本篇文章介绍nodejs连接redis,以及redis的基本使用。

安装redis。

cnpm i redis -S

封装redis配置信息。

config/db.js

// redis 配置 let REDIS_CONF // 开发环境 if (env === 'dev') { REDIS_CONF = { port: 6639, host: '127.0.0.1' } } // 生产环境 if (env === 'production') { REDIS_CONF = { port: 6639, host: '127.0.0.1' } } // 导出配置 module.exports = { MYSQL_CONF, REDIS_CONF }

将存储和读取redis数据封装成工具类。

db/redis.js

const redis = require('redis') const {REDIS_CONF} = require('../config/db') // 创建连接终端 const redisClient = redis.createClient(REDIS_CONF.port,REDIS_CONF.host) // 监听存储过程出错 redisClient.on('error', err => { console.log(err) }) // 存储值 function set (key, val) { if (typeof val === 'object') { val = JSON.stringify(val) } redisClient.set(key,val, redis.print) } // 读取值 function get (key) { const promise = new Promise((resolve, reject) => { redisClient.get(key, (err, val) => { // 出错 if (err) { reject(err) return } // 值为空 if (val == null) { resolve(null) return } // 如果是json则转为对象,否则直接返回设置的值 try { resolve(JSON.parse(val)) } catch (ex) { resolve(val) } }) }) return promise } module.exports = { set, get }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1141500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FS2流式处理中的异常处理与流畅设计

在使用FS2进行流式处理时,处理异常是保证流不被中断的一个关键点。让我们探讨如何在FS2中设计流处理逻辑以确保即使发生异常,流仍然可以继续运行,并结合实例进行说明。 背景介绍 在之前的代码中,我们定义了一个简单的学生信息处理流,它从一个包含学生ID的流开始,通过查…

系统学习ssd1306显示控制流程图解

深入理解SSD1306:从初始化到显示控制的完整路径你有没有遇到过这样的情况?电路接好了,代码烧录了,STM32或ESP32也跑起来了,可那块小小的OLED屏幕就是不亮,或者显示乱码、闪烁不定。更糟的是,数据…

揭秘曲线上的点:Python中的插值技巧

在数据科学和科学计算中,插值是一种常用的方法,用于估算已知数据点之间的值。在本文中,我们将探讨如何使用Python的scipy库来实现二维函数的插值,结合实际例子来展示其应用。 背景介绍 假设我们有一个已知的二维函数 f(x, y),其在某些点 (x, y) 上的值已经计算好。同时,…

Node.js(v16.13.2版本)安装及环境配置教程

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本,这里我选择的是Windows系统、64位(v16.13.2版本) 下载后的zip文件 二、解压文件到nodejs,并打开文件夹nodejs,复制解压…

Nginx环境安装

一、官网地址 Nginx官网:http://nginx.org/ Nginx中文网:https://nginx.p2hp.com/ 二、Nginx版本 mainline version 开发版本stableversion 稳定版本legacy version 历史版本 三、Windows系统安装Nginx 第一步:选择Windows版本,…

在GIS中使用ggplot2绘制坐标点和Shapefile

在地理信息系统(GIS)中,常见的一个需求是将坐标点绘制在地图上。这不仅可以帮助我们可视化数据分布,也能对数据进行空间分析。本文将通过一个具体的实例,展示如何在R语言中使用ggplot2包结合sf包,将坐标数据点绘制在Shapefile之上。 背景介绍 假设我们有以下情况: 坐标…

LCD12864模块使用教程:零基础项目应用

从零开始玩转LCD12864:嵌入式开发中的“老派但靠谱”显示方案你有没有遇到过这样的场景?手里的单片机项目已经能采集传感器数据、执行控制逻辑,甚至还能通过串口把信息发给电脑——但一旦脱离上位机,设备就像个“哑巴”&#xff0…

Nginx权限问题详解及解决方案

一、前言 在运行Nginx服务器时,权限问题是一个常见的困扰,尤其是在Linux环境下。权限配置不当可能导致Nginx无法启动、无法访问某些目录或文件,甚至影响到网站的正常运行。本文将深入探讨Nginx权限问题的原因,并提供有效的解决方案…

Excel数据透视表:如何显示未使用的数据验证列表项

在Excel中,数据透视表是强大的数据分析工具,能够快速汇总和分析大量数据。然而,当你试图在数据透视表中显示一个包含未使用项目的数据验证列表时,可能会遇到一些挑战。本文将详细介绍如何在数据透视表中显示所有可能的项目&#x…

Node.js看我的就行了!!!

#最近nodejs崩了好多次,所以我决定重装。由于没有卸载干净,折腾了我两天# 终于,我今天下午装好了 我们从卸载开始(没有安装的小伙伴直接到第二步) 一、卸载node.js Windows系统彻底卸载 nodejs 1. 开始菜单中搜索node,找到并…

Nginx搭建负载均衡

Nginx搭建负载均衡 引言 在当今互联网时代,网站和应用的可用性、可靠性和性能至关重要。随着流量的增加,单一服务器往往难以承载所有请求,从而导致性能瓶颈。负载均衡(Load Balancing)是一种将流量分散至多台服务器的技…

Git命令补全优化:解决分支名称冲突

在日常的Git操作中,利用Tab键进行命令补全是一个非常方便的功能。例如,当我们输入git switch de并按下Tab键时,如果存在多个以"de"开头的分支(如develop和dev-1234),命令补全会停止在git switch dev。即使我们删除了dev-1234分支,补全功能仍然会因为之前的存在…

AD中从电路图到PCB的设计流程:系统学习篇

从原理图到PCB:在Altium Designer中构建可靠硬件设计的实战路径你有没有经历过这样的时刻?花了一整天画好电路图,信心满满地点击“更新PCB”,结果弹出一堆红色警告:“封装未指定”、“网络冲突”、“Extra Primitive D…

STC15系列与Keil C51结合的PWM输出全面讲解

深入掌握STC15单片机PWM输出:从寄存器配置到Keil实战调优在嵌入式控制的世界里,PWM(脉宽调制)是一项看似基础却极为关键的技术。无论是调节LED亮度、驱动直流电机,还是实现数字电源的闭环稳压,背后都离不开…

u8g2中自定义字体嵌入的实战案例

让你的嵌入式界面“有颜有料”:u8g2自定义字体实战全解析你有没有遇到过这样的情况?项目快上线了,老板看了一眼OLED屏幕上的显示效果,皱着眉头说:“这字太普通了,不像我们品牌调性。” 或者用户反馈&#x…

软件I2C在STM32上的实现:手把手教程(从零开始)

软件I2C在STM32上的实现:从协议到代码的深度实践 你有没有遇到过这样的场景?项目已经进入PCB布线阶段,突然发现硬件I2C引脚被串口占用了;或者多个传感器都需要接入I2C总线,但MCU只提供一路I2C外设。更糟的是&#xff0…

【LLaVA】《Improved Baselines with Visual Instruction Tuning》译读笔记

Improved Baselines with Visual Instruction Tuning 摘要 大型多模态模型(LMM)最近在视觉指令调优方面取得了令人鼓舞的进展。本文首次系统性地研究在 LLaVA 框架下在受控环境中探讨 LMMs 的设计选择。本文展示了 LLaVA 中全连接的视觉语言连接器功能…

vivado安装包版本选择:核心要点一文说清

Vivado安装包版本怎么选?搞懂这几点,告别环境踩坑你有没有遇到过这样的情况:刚接手一个老项目,打开工程时弹出“Project file corrupted”;或者辛辛苦苦写完代码,综合到一半报错“Part not found”&#xf…

Blazor WebAssembly 中的 MudBlazor 折叠面板绑定与更新

简介 在 Blazor WebAssembly 开发中,MudBlazor 是一个非常受欢迎的 UI 组件库,它提供了丰富的组件和样式,极大地简化了前端开发。然而,在使用其折叠面板(Expansion Panels)时,如何正确地绑定数据…

ChatGPT 基于 GPT(Generative Pre-trained Transformer)架构,通过大规模预训练和微调实现自然语言处理。

AI 发展指南:技术演进路线ChatGPT 的技术基础ChatGPT 基于 GPT(Generative Pre-trained Transformer)架构,通过大规模预训练和微调实现自然语言处理。其核心是 Transformer 的自注意力机制,能够捕捉长距离依赖关系。训…