中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs如何使用redis作為緩存介質實現封裝緩存類

發布時間:2021-08-02 10:55:23 來源:億速云 閱讀:217 作者:小新 欄目:web開發

小編給大家分享一下nodejs如何使用redis作為緩存介質實現封裝緩存類,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

之前在node下使用redis作為緩存介質,對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(); // 創建連接
    const instance = this.client;
    // 主要重寫了一下三個方法。可以根據需要定義。
    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參數。在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如何使用redis作為緩存介質實現封裝緩存類”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长乐市| 定襄县| 彰化县| 蓝山县| 威宁| 平利县| 两当县| 赫章县| 重庆市| 彰化县| 缙云县| 关岭| 金山区| 鹤峰县| 社会| 宣城市| 宜宾市| 海原县| 山阴县| 建瓯市| 兴山县| 合川市| 阳西县| 西藏| 元江| 广南县| 岑巩县| 鹤壁市| 镇江市| 深水埗区| 剑川县| 全州县| 双辽市| 静宁县| 资兴市| 黑龙江省| 卢湾区| 丹棱县| 多伦县| 灵山县| 清原|