nodejs如何使用redis作为缓存介质实现封装缓存类
小编给大家分享一下nodejs如何使用redis作为缓存介质实现封装缓存类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联是一家专业提供华阴企业网站建设,专注与成都网站设计、成都网站制作、H5响应式网站、小程序制作等业务。10年已为华阴众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
具体如下:
之前在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作为缓存介质实现封装缓存类”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
新闻名称:nodejs如何使用redis作为缓存介质实现封装缓存类
URL标题:http://www.jxjierui.cn/article/gdooph.html


咨询
建站咨询
