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)文章
Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境
這篇文章主要介紹了Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境的方法以及注意事項,對此有需要的朋友可以參考學(xué)習(xí)下。2018-04-04
nodejs中內(nèi)置模塊fs,path常見的用法說明
這篇文章主要介紹了nodejs中內(nèi)置模塊fs,path常見的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

