nodejs链接redis

news/2025/2/21 5:25:13

本篇文章介绍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.niftyadmin.cn/n/5860210.html

相关文章

Stack和Queue—模拟实现,实战应用全解析!

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连,小编尽全力做到更好 欢迎您分享给更多人哦 大家好,我们今天来学习java数据结构的Stack和Queue(栈和队列) 一:栈 1.1:栈的概念 …

c/c++蓝桥杯经典编程题100道(23)最小生成树

最小生成树(MST)问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 最小生成树(MST)问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1:Kruskal算法(基于并查集,难度★★★&#…

Linux System V - 消息队列与责任链模式

概念 消息队列是一种以消息为单位的进程间通信机制,允许一个或多个进程向队列中发送消息,同时允许一个或多个进程从队列中接收消息。消息队列由内核维护,具有以下特点: 异步通信:发送方和接收方不需要同时运行&#x…

58同城深度学习推理平台:基于Istio的云原生网关实践解析

在当今数字化时代,深度学习技术的快速发展为各行各业带来了革命性的变化。作为国内领先的分类信息网站,58同城一直致力于通过技术创新提升服务质量和用户体验。近期,58同城AI Lab推出了一项重要的技术革新——基于Istio的云原生网关深度学习推…

用DeepSeek来帮助学习three.js加载3D太极模形

画一个平面的太极图是很容易,要实现3D的应该会很难 一、参考3D模形效果 看某网页看到一个效果,像一个3D太极球,觉得挺有趣,挺解压的,想进一步去了解下这是如何实现 效果: 链接地址: http://www.…

python:多重继承、MRO(方法解析顺序)

在 Python 中,当类存在多重继承时,方法的调用顺序由 方法解析顺序(Method Resolution Order, MRO) 决定。 Python 使用 C3线性化算法 来确定类的继承顺序(MRO),其核心规则是: 子类优…

第六届全球数据库大赛:PolarDB TPC-C性能优化挑战赛方案分享(一)--参数调优

文章目录 前言一、基本参数二、提分参数三、关键参数四、遗漏参数总结前言 今年由于阿里承办了全国大学生计算机系统能力大赛PolarDB数据库创新设计赛,本以为数据库大赛会取消,直到十一左右比赛才姗姗来迟,所以赛程较往年缩短了一个月左右,初赛和复赛都只有一个月时间,时…

跟着 Lua 5.1 官方参考文档学习 Lua (5)

文章目录 2.10 – Garbage Collection2.10.1 – Garbage-Collection Metamethods2.10.2 – Weak Tables 2.10 – Garbage Collection Lua performs automatic memory management. This means that you have to worry neither about allocating memory for new objects nor abo…