欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs使用redis作為緩存介質(zhì)實現(xiàn)的封裝緩存類示例

 更新時間:2018年02月07日 14:10:07   作者:karenYin0828  
這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實現(xiàn)的封裝緩存類,涉及nodejs操作redis進行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了nodejs使用redis作為緩存介質(zhì)實現(xiàn)的封裝緩存類。分享給大家供大家參考,具體如下:

之前在node下使用redis作為緩存介質(zhì),對redis進行了一層封裝

First: 安裝npm包 redis

const redis = require('redis');

Second: 進行封裝

// cache.js
const redis = require('redis');
const config = require('config');
const logger = require('winston');
const redisObj = {
  client: null,
  connect: function () {
    this.client = redis.createClient(config.redis);
    this.client.on('error', function (err) {
      logger.error('redisCache Error ' + err);
    });
    this.client.on('ready', function () {
      logger.info('redisCache connection succeed');
    });
  },
  init: function () {
    this.connect(); // 創(chuàng)建連接
    const instance = this.client;
    // 主要重寫了一下三個方法??梢愿鶕?jù)需要定義。
    const get = instance.get;
    const set = instance.set;
    const setex = instance.setex;
    instance.set = function (key, value, callback) {
      if (value !== undefined) {
        set.call(instance, key, JSON.stringify(value), callback);
      }
    };
    instance.get = function (key, callback) {
      get.call(instance, key, (err, val) => {
        if (err) {
          logger.warn('redis.get: ', key, err);
        }
        callback(null, JSON.parse(val));
      });
    };
    // 可以不用傳遞expires參數(shù)。在config文件里進行配置。
    instance.setex = function (key, value, callback) {
      if (value !== undefined) {
        setex.call(instance, key, config.cache.maxAge, JSON.stringify(value), callback);
      }
    };
    return instance;
  },
};
// 返回的是一個redis.client的實例
module.exports = redisObj.init();

How to use

const cache = require('./cache');
cache.get(key, (err, val) => {
  if (val) {
    // do something
  } else {
    // do otherthing
  }
});
cache.set(key, val, (err, res) => {
  // do something
});
cache.setex(key, val, (err, res) => {
  // do something
})

希望本文所述對大家nodejs程序設(shè)計有所幫助。

相關(guān)文章

  • 解決修復(fù)npm安裝全局模塊權(quán)限的問題

    解決修復(fù)npm安裝全局模塊權(quán)限的問題

    今天小編就為大家分享一篇解決修復(fù)npm安裝全局模塊權(quán)限的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Nodejs中的require函數(shù)的具體使用方法

    Nodejs中的require函數(shù)的具體使用方法

    這篇文章主要介紹了Nodejs中的require函數(shù)的具體使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境

    Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境

    這篇文章主要介紹了Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境的方法以及注意事項,對此有需要的朋友可以參考學(xué)習下。
    2018-04-04
  • Nodejs監(jiān)聽日志文件的變化的過程解析

    Nodejs監(jiān)聽日志文件的變化的過程解析

    最近有在做日志文件的分析,其中有一個需求:A服務(wù)器項目需要用Nodejs監(jiān)聽日志文件的變化,當項目產(chǎn)生了新的日志信息,將新的部分通過socket傳輸?shù)紹服務(wù)器項目,本文重點給大家介紹Nodejs監(jiān)聽日志文件的變化的相關(guān)知識,一起看看吧
    2019-08-08
  • 用node.js寫一個jenkins發(fā)版腳本

    用node.js寫一個jenkins發(fā)版腳本

    這篇文章主要介紹了用node.js寫一個jenkins發(fā)版腳本,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-05-05
  • 在Node.js中發(fā)出HTTP請求的 5 種方法

    在Node.js中發(fā)出HTTP請求的 5 種方法

    學(xué)習如何在 Node.js 中發(fā)出 HTTP 請求可能會讓人感到不知所措,因為有數(shù)十個可用的庫,每個解決方案都聲稱比上一個更高效,在這篇文章中,我們將探討在 Node.js 中發(fā)出 HTTP 請求的五種最流行的方法,并為每種方法提供說明,需要的朋友可以參考下
    2023-11-11
  • 教你如何用node連接redis的示例代碼

    教你如何用node連接redis的示例代碼

    這篇文章主要介紹了教你如何用node連接redis的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Node.js 多線程實戰(zhàn)小結(jié)

    Node.js 多線程實戰(zhàn)小結(jié)

    在?Node.js?的世界中,多線程技術(shù)一直是一個受到廣泛關(guān)注的領(lǐng)域,本文主要介紹了Node.js 多線程實戰(zhàn)小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • nodejs中內(nèi)置模塊fs,path常見的用法說明

    nodejs中內(nèi)置模塊fs,path常見的用法說明

    這篇文章主要介紹了nodejs中內(nèi)置模塊fs,path常見的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • node.js中實現(xiàn)雙重身份驗證機制的方法詳解

    node.js中實現(xiàn)雙重身份驗證機制的方法詳解

    雙重身份驗證(Two-factor?authentication)是一種安全機制,它要求用戶提供兩種不同的身份驗證因素來訪問他們的帳戶,下面我們就來學(xué)習一下如何使用speakeasy在nodejs中實現(xiàn)雙重身份驗證吧
    2023-10-10

最新評論