Node.js용 node-redis 시작하기

Node.js용 node-redis 시작하기 (node-redis guide (JavaScript))

Node.js/JavaScript 애플리케이션에서 Redis를 쓰고 싶다면 node-redis가 기본 선택지예요. 이 라이브러리는 Promise 기반(async/await)이라 최신 Node.js 코드와 자연스럽게 어울립니다. 설치부터 연결, 데이터 저장까지 순서대로 같이 해볼게요.

출처: 공식문서

node-redis는 어떤 클라이언트인가요?

node-redis는 Node.js/JavaScript용 Redis 클라이언트예요. Node.js/JavaScript를 쓰는 대부분의 경우에 이 라이브러리를 추천합니다. 다만 우리가 지원·문서화하는 더 오래된 JavaScript 클라이언트 ioredis도 있어서, 기존 ioredis 프로젝트를 node-redis로 옮기고 싶은 분은 Migrate from ioredis 문서를 참고하시면 돼요.

node-redis도 실행 중인 Redis 서버가 필요해요. 서버가 없다면 Redis Open Source 설치 안내를 따라주세요. 객체 매핑 인터페이스로 접근하고 싶다면 RedisOM for Node.js 문서를 보면 됩니다.

설치하기

node-redis는 npm으로 설치할 수 있어요.

npm install redis

연결하고 테스트하기

localhost의 6379 포트에 연결해 볼게요.

import { createClient } from 'redis';



const client = createClient();



client.on('error', err => console.log('Redis Client Error', err));



await client.connect();

간단한 문자열을 저장하고 다시 꺼내 봅니다.

await client.set('key', 'value');

const value = await client.get('key');

console.log(value);

해시(hash) 형태의 맵도 저장하고 꺼낼 수 있어요.

await client.hSet('user-session:123', {

    name: 'John',

    surname: 'Smith',

    company: 'Redis',

    age: 29

})



let userSession = await client.hGetAll('user-session:123');

console.log(JSON.stringify(userSession, null, 2));

다른 호스트나 포트에 연결하려면 redis[s]://[[username][:password]@][host][:port][/db-number] 형식의 연결 문자열을 쓰면 돼요.

createClient({

  url: 'redis://alice:[email protected]:6380'

});

연결이 되어 명령을 보낼 준비가 됐는지 확인하려면 client.isReady를 쓰면 되는데, Boolean 값을 반환해요. client.isOpen도 사용할 수 있고요. isOpen은 클라이언트의 기본 소켓이 열려 있으면 true, 그렇지 않으면(예: 아직 연결 중이거나 네트워크 오류 후 재연결 중일 때) false를 반환합니다.

연결 사용을 마쳤으면 client.quit()으로 닫아줘요.

await client.quit();

더 알아보기 (Learn more)

node-redis 웹사이트에 더 많은 예제가 있고, GitHub 저장소에는 사용할 수 있는 연결 설정 옵션 안내 등 유용한 정보가 있어요. 같은 섹션의 "Connect to the server" 페이지에서 클러스터 연결, TLS 연결, 클라이언트 사이드 캐싱, 재연결 같은 내용을 이어서 살펴볼 수 있습니다.