이 글에서는 주로 redis를 캐시 매체로 사용하여 nodejs로 구현한 캡슐화된 캐시 클래스를 소개합니다. 캐시 설정을 위해 redis를 운영하는 nodejs와 관련된 작업 기술이 포함되어 있습니다.
이 글의 예는 구현을 설명합니다. redis를 캐시 매체로 사용하는 nodejs의 캐시 클래스를 캡슐화합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
이전에는 Redis를 노드 아래의 캐시 매체로 사용하고 Redis를 캡슐화했습니다.
첫 번째: npm 패키지 redis 설치
const redis = require('redis');
두 번째: 캡슐화
// 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();
사용방법
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 })
위 내용은 제가 모두를 위해 정리한 내용입니다. 앞으로 모든 분들께 도움이 되길 바랍니다.
관련 기사:
Vue.js가 데이터를 표시할 때 페이지 깜박임 문제를 해결하는 방법
을 사용하여 각 페이지의 제목 방법을 설정하는 방법 뷰 라우터
위 내용은 nodejs에서 redis를 통해 캐시로 구현된 캡슐화된 캐시 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!