> 웹 프론트엔드 > JS 튜토리얼 > Express 애플리케이션의 Redis 싱글톤

Express 애플리케이션의 Redis 싱글톤

PHPz
풀어 주다: 2024-08-07 06:46:42
원래의
486명이 탐색했습니다.

Redis Singleton in Your Express Application

안녕하세요 여러분!!!
효율적인 Redis 사용으로 Express 애플리케이션을 최적화하려고 하시나요? 더 이상 보지 마세요! 이 게시물에서는 간소화되고 효율적이며 확장 가능한 캐싱 솔루션을 보장하기 위해 Express 앱에서 Redis Singleton을 구현하는 방법을 살펴보겠습니다. 함께 애플리케이션을 개선해 보세요!

한 번 초기화되어 Node.js Express 애플리케이션 전체에서 재사용되는 Redis 연결을 생성하려면 싱글톤 패턴을 사용할 수 있습니다. 이렇게 하면 Redis 클라이언트의 인스턴스 하나만 생성되어 애플리케이션의 여러 부분에서 공유됩니다.

1. Redis 클라이언트 설치: 먼저 Redis 클라이언트 라이브러리가 설치되어 있는지 확인하세요. ioredis 또는 redis를 사용할 수 있습니다. 여기서는 ioredis를 사용하겠습니다.
npm 설치 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 클라이언트 인스턴스가 생성되어 애플리케이션 전체에서 재사용되므로 효율성이 높아지고 Redis 서버에 대한 불필요한 연결 수가 줄어듭니다.

해 보세요 <3 즐거운 코딩하세요!!!

위 내용은 Express 애플리케이션의 Redis 싱글톤의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿