ホームページ > ウェブフロントエンド > jsチュートリアル > Nodejs は Redis を使用してキャッシュをカプセル化します

Nodejs は Redis を使用してキャッシュをカプセル化します

php中世界最好的语言
リリース: 2018-04-12 17:45:27
オリジナル
3474 人が閲覧しました

今回は、redisを使用してnodejsでキャッシュをカプセル化する方法について説明します。nodejsがキャッシュをカプセル化するためにredisを使用する場合の注意事項は何ですか。以下は実際のケースです。

以前は、redis はノード下のキャッシュ媒体として使用され、redis はカプセル化されていました

最初に: npm パッケージ redis をインストールします

const redis = require('redis');
ログイン後にコピー

2 番目: カプセル化

// 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
})
ログイン後にコピー
この記事の事例を読んだ後、あなたはその方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

VUE+UEditor 画像のクロスドメインアップロードを実装する方法

vue プロジェクトでアップロードコンポーネントを使用する方法


以上がNodejs は Redis を使用してキャッシュをカプセル化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート