<aside> <img src="https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913679/noticon/xlnsjihvjxllech0hawu.png" alt="https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913679/noticon/xlnsjihvjxllech0hawu.png" width="40px" /> Redis 시리즈 [Redis] 0. 초 간단! Docker을 이용하여 Redis 설치하기 [Redis] 1. Redis에 대해 알아보기 [Redis] 2. NestJS 백엔드 환경에서 Redis를 데이터 저장소로 사용하기 [Redis] 3. NestJS 백엔드에서 환경에서 Redis의 PUB/SUB과 Socket.IO Adapter, PM2를 이용하여 소켓 클러스터 서버 구현하기

</aside>

✔️ 현재 상황


Zello-Draw는 게임 로직을 구현하고 있어서 관리하고 있는 특정 데이터의 I/O가 많은 편이에요. 그래서 게임 데이터를 In-Memory database에 저장하면 성능을 향상 시킬 수 있을 것이라고 생각했어요.

Redis를 진행중인 게임 정보 저장용 DB로 사용하면 좋은 점

Artillery로 측정한 부하 테스트 결과

Redis

Redis

MongoDB

MongoDB

여러 조건에서 테스트했을 때 Redis가 평균적으로 1.5배 정도 빠른것을 확인할 수 있었다.

✔️ Redis 를 in-memory database로 사용하기


1. Redis 관련 패키지 설치하기

$ npm install cache-manager 
$ npm install cache-manager-redis-store 
$ npm install redis

node-cache-manager