Express アプリケーションの Redis シングルトン

PHPz
リリース: 2024-08-07 06:46:42
オリジナル
466 人が閲覧しました

Redis Singleton in Your Express Application

皆さんこんにちは!!!
Redis を効率的に使用して Express アプリケーションを最適化したいと考えていますか?もう探す必要はありません。この投稿では、合理化され、効率的でスケーラブルなキャッシュ ソリューションを確保するために、Express アプリに Redis シングルトンを実装する方法について詳しく説明します。一緒にアプリケーションを強化しましょう!

一度初期化され、Node.js Express アプリケーション全体で再利用される Redis 接続を作成するには、シングルトン パターンを使用できます。これにより、Redis クライアントのインスタンスが 1 つだけ作成され、アプリケーションのさまざまな部分で共有されるようになります。

1. Redis クライアントをインストールします: まず、Redis クライアント ライブラリがインストールされていることを確認します。 ioredis または redis を使用できます。ここでは、ioredis を使用します。
npm install ioredis

2. Redis シングルトン クラスを作成します:

// redisClient.js
const Redis = require('ioredis');

class RedisClient {
  constructor() {
    if (!RedisClient.instance) {
      this.client = new Redis({
        host: 'localhost', // Change to your Redis server host
        port: 6379,        // Change to your Redis server port
        // Add other Redis connection options if necessary
      });

      this.client.on('connect', () => {
        console.log('Connected to Redis');
      });

      this.client.on('error', (err) => {
        console.error('Redis error', err);
      });

      RedisClient.instance = this;
    }

    return RedisClient.instance;
  }

  getClient() {
    return this.client;
  }
}

const instance = new RedisClient();
Object.freeze(instance);

module.exports = instance;

ログイン後にコピー

3. Express アプリケーションで Redis シングルトンを使用します:

// app.js
const express = require('express');
const redisClient = require('./redisClient');

const app = express();
const port = 3000;

app.get('/', async (req, res) => {
  const client = redisClient.getClient();
  await client.set('key', 'value');
  const value = await client.get('key');
  res.send(`Value for 'key' is: ${value}`);
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

ログイン後にコピー

この戦略に従うと、Redis クライアント インスタンスが 1 つだけ作成され、アプリケーション全体で再利用されるようになり、効率が向上し、Redis サーバーへの不要な接続の数が減ります。

試してみる コーディングを楽しんでください!!!

以上がExpress アプリケーションの Redis シングルトンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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