Node.js封装redis操作及代码是什么

Admin 2022-08-17 群英技术资讯 291 次浏览

今天这篇我们来学习和了解“Node.js封装redis操作及代码是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Node.js封装redis操作及代码是什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!


配置文件:RedisOptions.js
const options = {
  host: '208.167.233.104',
  port: 15001,
  password: '123456',
  detect_buffers: true // 传入buffer 返回也是buffer 否则会转换成String
}
 
module.exports = options
  封装redis操作:RedisConfig.js 需要安装redis的npm包 (3.0.2)
const redis = require('redis')
const redisOptions = require('./RedisOptions')
 
const options = {
  host: redisOptions.host,
  port: redisOptions.port,
  password: redisOptions.password,
  detect_buffers: redisOptions.detect_buffers, // 传入buffer 返回也是buffer 否则会转换成String
  retry_strategy: function (options) {
    // 重连机制
    if (options.error && options.error.code === "ECONNREFUSED") {
      // End reconnecting on a specific error and flush all commands with
      // a individual error
      return new Error("The server refused the connection");
    }
    if (options.total_retry_time > 1000 * 60 * 60) {
      // End reconnecting after a specific timeout and flush all commands
      // with a individual error
      return new Error("Retry time exhausted");
    }
    if (options.attempt > 10) {
      // End reconnecting with built in error
      return undefined;
    }
    // reconnect after
    return Math.min(options.attempt * 100, 3000);
  }
}
 
// 生成redis的client
const client = redis.createClient(options)
 
// 存储值
const setValue = (key, value) => {
  if (typeof value === 'string') {
    client.set(key, value)
  } else if (typeof value === 'object') {
    for (let item in value) {
      client.hmset(key, item, value[item],redis.print)
    }
  }
}
 
// 获取string
const getValue = (key) => {
  return new Promise((resolve, reject) => {
    client.get(key, (err, res) => {
      if (err) {
        reject(err)
      }else{
        resolve(res)
      }
    })
  })
}
 
// 获取hash
const getHValue = (key) => {
  return new Promise((resolve, reject) => {
    client.hgetall(key, function (err, value) {
      if (err) {
        reject(err)
      } else {
        resolve(value)
      }
    })
  })
}
 
// 导出
module.exports = {
  setValue,
  getValue,
  getHValue
} 
  使用:test.js
const redis = require('./RedisConfig')
 
redis.setValue('student', {
  name: 'xiaoming',
  age: 18,
  sex: 1
})
 
redis.setValue('book', 'yuwen')
 
redis.getValue('book').then(res => {
  console.log(res)
}).catch(err => {
  throw new Error(err)
})
 
redis.getHValue('student').then(res => {
  console.log(res)
}).catch(err => {
  throw new Error(err)
})

 


到此这篇关于“Node.js封装redis操作及代码是什么”的文章就介绍到这了,更多相关Node.js封装redis操作及代码是什么内容,欢迎关注群英网络技术资讯频道,小编将为大家输出更多高质量的实用文章! 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服