A Developing Developer
Redis 본문
Redis는 인메모리 데이터 저장소로서, 키-값 구조로 데이터를 저장하고 검색하는 데 사용되는 데이터 구조 서버이다.
Redis는 Remote Dictionary Server 의 약자로, 특정 데이터 구조를 캐시로 사용하거나, 세션 관리, 메시지 브로커 등으로 사용되는데 적합한 솔루션이다.
Redis는 메모리에서 데이터를 읽고 쓰기 때문에 매우 빠른 응답 속도를 제공한다. 또한 다양한 데이터 구조를 지원하므로, 문자열, 해시, 목록, 집합, 정렬된 집합 등 다양한 데이터 타입을 지원한다. Redis는 또한 클러스터링, 레플리케이션, 트랜잭션, Pub/Sub 등의 기능도 제공한다.
Redis는 주로 웹 애플리케이션에서 세션 관리, 캐싱, 랭킹, 실시간 알림 등에 사용된다. Redis는 다양한 언어와 프레임워크에서 사용할 수 있는 클라이언트 라이브러리를 제공하며, 고성능 데이터베이스로 많은 사용자들에게 사랑받고 있다.
- 사용법
1. Redis 패키지 설치
npm install redis
2. Service
import { Injectable } from '@nestjs/common';
import * as Redis from 'ioredis';
@Injectable()
export class RedisService {
private readonly redisClient: Redis.Redis;
constructor() {
this.redisClient = new Redis({
host: 'localhost',
port: 6379,
});
}
async set(key: string, value: string): Promise<string> {
return await this.redisClient.set(key, value);
}
async get(key: string): Promise<string | null> {
return await this.redisClient.get(key);
}
async del(key: string): Promise<number> {
return await this.redisClient.del(key);
}
}
위 코드에서는 RedisService 클래스를 만들고, ioredis 패키지를 사용하여 Redis 클라이언트를 생성한다. 생성한 Redis 클라이언트를 사용하여 set(), get(), del() 메서드를 구현한다.
3. Contorller
import { Controller, Get } from '@nestjs/common';
import { RedisService } from './redis.service';
@Controller()
export class AppController {
constructor(private readonly redisService: RedisService) {}
@Get()
async getHello(): Promise<string> {
await this.redisService.set('hello', 'world');
const result = await this.redisService.get('hello');
await this.redisService.del('hello');
return result;
}
}
위 코드에서는 AppController 클래스를 만들고, RedisService를 주입하여 사용한다. GET / 경로에 대한 요청을 처리하는 getHello() 메서드에서는 RedisService의 set(), get(), del() 메서드를 사용하여 Redis 데이터를 저장하고 검색한다.
위와 같이 RedisService 클래스를 작성하고 주입하여 사용하면 Nest.js에서 Redis를 쉽게 사용할 수 있다.
'개발 상식' 카테고리의 다른 글
Transaction (0) | 2023.02.28 |
---|---|
Scope & Closure (0) | 2023.02.23 |
TypeORM 에서 'n + 1 problem' 은 어떻게 해결할까? (0) | 2023.02.21 |
eager 과 lazy loading (0) | 2023.02.21 |
IoC 와 DI (0) | 2023.02.20 |