国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

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

2019-11-19 14:23:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

First: 安裝npm包 redis

const redis = require('redis');

Second: 進(jìn)行封裝

// cache.jsconst 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;    // 主要重寫(xiě)了一下三個(gè)方法。可以根據(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文件里進(jìn)行配置。    instance.setex = function (key, value, callback) {      if (value !== undefined) {        setex.call(instance, key, config.cache.maxAge, JSON.stringify(value), callback);      }    };    return instance;  },};// 返回的是一個(gè)redis.client的實(shí)例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})

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

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涞水县| 潜山县| 阿拉善盟| 织金县| 藁城市| 登封市| 历史| 新竹县| 神池县| 彰武县| 昌都县| 江安县| 突泉县| 麦盖提县| 琼结县| 乾安县| 洞口县| 本溪市| 泗水县| 浪卡子县| 梅州市| 武陟县| 松溪县| 阿尔山市| 讷河市| 嫩江县| 同仁县| 淳安县| 曲水县| 阜平县| 珲春市| 赤壁市| 水富县| 抚松县| 汉川市| 苍南县| 安宁市| 青浦区| 大悟县| 驻马店市| 台东市|