這次給大家?guī)韓odejs使用redis封裝緩存的方法,nodejs使用redis封裝緩存的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。
之前在node下使用redis作為緩存介質(zhì),對redis進(jìn)行了一層封裝
First: 安裝npm包 redis
const redis = require('redis');
Second: 進(jìn)行封裝
// 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文件里進(jìn)行配置。 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 })
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!
推薦閱讀:
VUE+UEditor圖片跨域上傳怎樣實現(xiàn)
在vue項目中怎樣使用上傳組件
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com