728x90
1. 기본적인 CRUD 기능
1) 생성 (set)
await valkeyService.set('user:123', { name: 'Alice', age: 25 }, 3600);
- key: user:123
- value: { name: 'Alice', age: 25 }
- expiryInSeconds: 3600초 (선택사항, 생략 가능)
2) 단일 조회 (get)
const user = await valkeyService.get<{ name: string; age: number }>('user:123');
console.log(user); // { name: 'Alice', age: 25 }
- key를 사용해 데이터를 가져옴.
- JSON.parse로 변환하여 객체 형태로 반환.
3) 복수 조회 (리스트 활용)
await valkeyService.rpush('users', JSON.stringify({ name: 'Alice' }));
await valkeyService.rpush('users', JSON.stringify({ name: 'Bob' }));
const users = await valkeyService.lrange('users', 0, -1);
const parsedUsers = users.map((u) => JSON.parse(u));
console.log(parsedUsers);
- rpush: 리스트 끝에 추가.
- lrange: 0부터 -1까지 전체 리스트 조회.
- 결과는 JSON 문자열이므로 JSON.parse 사용.
4) 수정 (set)
await valkeyService.set('user:123', { name: 'Alice', age: 26 });
- 기존 데이터 위에 덮어쓰기 방식.
5) 삭제 (del)
await valkeyService.del('user:123');
- 해당 key 삭제.
2. 리스트 관련 연산
1) 리스트 요소 추가
await valkeyService.rpush('tasks', JSON.stringify({ id: 1, title: 'Task 1' }));
await valkeyService.rpush('tasks', JSON.stringify({ id: 2, title: 'Task 2' }));
- tasks 리스트에 JSON 형태로 저장.
2) 리스트 길이 확인
const length = await valkeyService.llen('tasks');
console.log(length); // 2
- llen: 리스트 길이 반환.
3) 리스트 조회
const tasks = await valkeyService.lrange('tasks', 0, -1);
const parsedTasks = tasks.map((t) => JSON.parse(t));
console.log(parsedTasks);
- lrange: 전체 리스트 조회.
- JSON 문자열을 객체로 변환.
4) 리스트에서 첫 번째 요소 가져오기 (삭제 포함)
const task = await valkeyService.lpop('tasks');
console.log(task); // 첫 번째 Task 객체
- lpop: 첫 번째 요소 가져오면서 삭제.
3. 서비스 관련 추가 설명
- Redis 클라이언트 설정
- host: localhost (Docker 환경에서는 valkey 변경 가능)
- port: 6379
- password: .env에서 설정 가능
- JSON 변환 (JSON.stringify, JSON.parse)
- Redis는 기본적으로 문자열을 저장하므로, 객체는 JSON 형태로 변환 후 저장해야 함.
- 메모리 관리 (onModuleDestroy)
- this.client.quit();을 통해 서비스 종료 시 Redis 연결 종료.
'내일배움 정리 > JS 문법 공부' 카테고리의 다른 글
LocalTunnel을 이용한 로컬 서버 외부 공유 방법 (0) | 2025.02.24 |
---|---|
사용자의 위치 사용하는 방법 - 항상 허용 (0) | 2025.02.24 |
NestJs 실행 명령어 (0) | 2025.02.20 |
nestJs CURD 레포지토리 (0) | 2025.02.18 |
NestJs - HTTP 예외 처리 클래스 (0) | 2025.02.14 |