프로젝트 소개

Node-Redis는 Node.js용 공식 Redis 클라이언트로, `npm install redis`로 설치합니다. 상위 패키지는 Redis Stack 모듈 지원을 번들로 제공하며, 모듈형 패키지도 별도로 배포됩니다: `@redis/client`(기본 클라이언트 및 클러스터), `@redis/bloom`, `@redis/json`, `@redis/search`, `@redis/time-series`, 그리고 Microsoft Entra ID 토큰 인증용 `@redis/entraid`. 클라이언트는 `createClient()`로 생성하며 `redis://` 및 `rediss://` 연결 URL, 개별 매개변수, UNIX 소켓, TLS를 지원합니다. `isReady`와 `isOpen`으로 연결 상태를 확인할 수 있습니다. 클라이언트는 `connect`, `ready`, `end`, `error`, `reconnecting`, `terminated`, `invalidate`, 샤드 채널 이벤트를 발생시키는 EventEmitter입니다. 프로세스 종료를 방지하려면 `error` 리스너가 필요합니다. API는 모든 내장 Redis 명령을 다루며, 원시 이름(`HSET`)과 camelCase 별칭(`hSet`)으로 모두 노출됩니다. 명령 수정자는 JavaScript 객체로 전달되고 응답은 네이티브 구조로 변환됩니다(예: 해시는 객체가 됨). 바이너리 데이터는 RESP blob 문자열을 `Buffer`로 매핑하는 `withTypeMapping`을 통해 지원됩니다. 알 수 없는 명령은 `sendCommand()`로 보낼 수 있습니다. 기타 문서화된 기능은 다음과 같습니다: - `multi()`/`exec()`를 통한 트랜잭션과 `watch()`를 사용한 낙관적 잠금. - 샤드 채널을 포함한 Pub/Sub. - `MATCH`, `COUNT`, `TYPE` 옵션을 지원하는 `SCAN`, `HSCAN`, `SSCAN`, `ZSCAN`용 비동기 이터레이터. - 동일한 이벤트 루프 틱에서 실행된 명령의 자동 파이프라이닝. - v5의 `RedisClientPool`로 격리된 연결 풀을 제공하며 블로킹 명령에 유용합니다. - RESP3 기반 서버 지원 클라이언트 측 캐싱으로 TTL, 항목 제한, LRU/FIFO 축출을 구성할 수 있습니다. - Redis Cluster 및 Sentinel 배포 전용 가이드. - Redis 8.4에서 도입된 Compare-and-set/delete(CAS/CAD) 연산과 선택적 `@node-rs/xxhash` 피어 의존성이 필요한 로컬 XXH3 `digest` 헬퍼. - `OpenTelemetry.init()`( `@opentelemetry/api` 및 구성된 SDK 필요)를 통한 OpenTelemetry 메트릭 계측과 APM 통합을 위해 Node.js `diagnostics_channel`을 통해 게시되는 텔레메트리. - Lua 스크립트 및 함수에 대한 프로그래밍 지원. README는 ESM 및 CommonJS 예제, 클라이언트 구성 세부 정보, v3에서 v4로, v4에서 v5로의 마이그레이션 가이드를 제공합니다. 주목할 만한 v5 API 변경 사항으로는 `quit()`을 대체하는 `close()`와 `disconnect()`를 대체하는 `destroy()`가 있습니다. 저장소는 MIT 라이선스입니다.