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
}
相关推荐
qq_2651533726 分钟前
Redis在游戏服务器中怎么实现开合服数据同步?
服务器·redis·游戏·游戏服务器
熊猫_豆豆2 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
来恩10034 小时前
jQuery选择器
前端·javascript·jquery
前端繁华如梦4 小时前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
ElevenS_it1884 小时前
Redis监控实战:内存使用+命中率+连接数三类核心指标接入Zabbix+分级告警完整配置方案
运维·网络·redis·mybatis·zabbix
CDwenhuohuo4 小时前
优惠券组件直接用 uview plus
前端·javascript·vue.js
川冰ICE5 小时前
TypeScript装饰器与元编程实战
前端·javascript·typescript
AI砖家5 小时前
Vue3组件传参大全,各种传参方式的对比
前端·javascript·vue.js
希望永不加班5 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html
threelab5 小时前
Three.js 3D 地图可视化 | 三维可视化 / AI 提示词
前端·javascript·人工智能·3d·着色器