Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 파이썬프로그래밍기초
- 꿀단집
- 데이터베이스시스템
- redis
- 방송대컴퓨터과학과
- 엘리스sw트랙
- 항해99
- Git
- 유노코딩
- 코드잇
- 코딩테스트준비
- SQL
- 중간이들
- CSS
- HTML
- TiL
- 방송대
- nestjs
- aws
- Cookie
- 99클럽
- Python
- 개발자취업
- 프로그래머스
- JavaScript
- presignedurl
- MySQL
- node.js
- 파이썬
- 코딩테스트
Archives
- Today
- Total
배꼽파지 않도록 잘 개발해요
[Redis] Redis 클라이언트는 기본적으로 로컬 Redis 서버에 연결됨 본문
현재 프로젝트의 NestJS 서버에서는 Redis를 사용하고 있다.
다른 백엔드 개발자분의 브랜치를 dev에 merge를 하고, 그걸 현재 내가 작업하는 브랜치에 merge를 하였다.
Conflict가 나서 코드는 해결하였으나, 실행할 때 다음과 같은 오류가 났다.
로컬에서 6379 포트로 Redis가 접속이 되지 않는다는 오류가 떴다.
그런데 나는 분명히 로컬에서 Redis를 연결하여 사용한 적이 없다. Redis Cloud에서 받은 Host, Port, Password를 입력하여 Redis Module을 만들어 사용하였기 때문이다.
가장 최근에 변경된 posts.service.ts 코드를 확인해보니 Redis Client를 생성할 때 어떠한 인자도 넣지 않고 있었다.
this.redis = new Redis(); 코드로 생성된 Redis 클라이언트는 기본적으로 로컬 Redis 서버에 연결된다.
ioredis 라이브러리를 사용할 때, Redis 클라이언트를 생성할 때 아무런 매개변수를 전달하지 않으면 기본적으로 localhost의 Redis 서버에 연결한다.
그래서 내 컴퓨터에는 로컬에서 Redis를 접속하여 쓰지 않기 떄문에 연결이 안 된다는 오류가 났던 것이다.
현재 우리 서버에서는 Redis Module을 만들어 사용하고 있다.
import { Module, Global } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import Redis from 'ioredis';
import { IRedisOptions } from './interfaces';
@Global()
@Module({
imports: [ConfigModule],
providers: [
{
provide: 'REDIS_CLIENT',
useFactory: (configService: ConfigService) => {
const host = configService.get<string>('REDIS_HOST');
const port = configService.get<number>('REDIS_PORT');
const password = configService.get<string>('REDIS_PASSWORD');
const redisOptions: IRedisOptions = {
host,
port,
password,
};
return new Redis(redisOptions);
},
inject: [ConfigService],
},
],
exports: ['REDIS_CLIENT'],
})
export class RedisModule {}
NestJS에서 Redis 클라이언트를 전역적으로 등록한 후, 서비스에서 의존성으로 주입받는 방식으로 사용하고 있다.
그래서 이 코드를 수정해주었다.
실행이 정상적으로 잘 되었다.
728x90
'BackEnd > Database' 카테고리의 다른 글
stateful과 stateless (0) | 2024.12.29 |
---|---|
[Redis] Redis Cloud와 Redis Insignt 차이점 및 사용해보기 (0) | 2024.09.10 |
[MongoDB] Mongoose Populate 이해 - find의 결과를 populate가 필터링 하지 않음 (0) | 2024.08.31 |
[MySQL] NestJS TypeORM DB 초기 세팅 시 발생한 오류 (0) | 2024.08.19 |