Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

오늘 우리는 Redis Stack의 출시를 발표하게 되어 매우 기쁩니다. Redis Stack은 최고의 Redis 모듈들의 강력한 기능들을 하나의 제품으로 통합하여, 개발자가 Redis의 속도와 안정성을 그대로 활용해 현대적인 실시간 애플리케이션을 손쉽게 구축할 수 있도록 지원합니다.

프롤로그

Redis는 빠르고 저지연(latency) 응답을 요구하는 애플리케이션과 서비스에 대한 보편적인 수요를 충족하기 위해 실시간 데이터 레이어를 구축하고 있습니다.

실시간 경험을 제공하는 애플리케이션을 만들려면, 단순한 객체 조회부터 검색, 복잡한 집계 연산까지 어떤 요청이든 최대한 빠르게, 이상적으로는 밀리초 미만으로 처리할 수 있는 데이터베이스가 필요합니다. 그 이유는 간단합니다. 일반적인 애플리케이션에서는 사용자가 한 번 상호작용할 때마다 데이터베이스 호출이 여러 번 발생하기 때문입니다. 여기에 최종 사용자와 애플리케이션 사이의 네트워크 왕복 지연 시간까지 더해지면, 데이터베이스에서 1밀리초라도 더 소요될 때마다 진정한 실시간 사용자 경험을 전달하기가 한층 어려워집니다.

이 원칙은 키/값(key-value), 문서(document), 스트림(stream), 그래프(graph), 시계열(time series), 확률형(probabilistic) 데이터 구조 등 어떤 데이터 모델에도 동일하게 적용됩니다.

지금까지의 여정

DB-Engines의 지난 24개월간 추세를 보면, 가장 빠르게 성장하는 데이터 모델은 키-값, 검색, 문서, 그래프, 시계열 순입니다. 이러한 흐름은 관계형 데이터베이스로 애플리케이션을 모델링하는 개발자가 점점 줄어들고 있음도 보여줍니다.

Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

사실 저희는 지난 4년간 Redis의 핵심인 키/값 데이터 구조 기능을 검색, 문서, 그래프, 시계열, 확률형 데이터 구조 같은 현대적인 데이터 모델과 데이터 처리 기능으로 확장하는 여러 전용 데이터 엔진을 개발해 왔습니다.

이 엔진들은 Redis 모듈 형태로 구현되었으며, 오픈소스 Redis와 동일한 설계 원칙을 바탕으로 인메모리 아키텍처와 C 또는 Rust로 작성된 고효율 코드베이스를 사용해 처음부터 새롭게 만들었습니다. 덕분에 개발자는 가능한 가장 낮은 지연 시간으로 다양한 데이터 워크로드를 실행할 수 있습니다.

커뮤니티와 고객의 피드백을 들으면서 저희는 주요 Redis 모듈과 그 기능, 그리고 이를 지원하는 문서와 클라이언트의 개발자 경험을 한층 단순화할 필요성을 깨달았습니다. 개발자가 Redis를 처음 사용하는 순간부터 최대 생산성을 발휘할 수 있도록 돕고 싶었던 것입니다.

바로 이러한 이유로 Redis Stack을 탄생시켰습니다.

Redis Stack이란?

Redis Stack은 대표적인 Redis 모듈들을 하나의 제품으로 통합합니다. 덕분에 Redis 기반의 검색, 문서, 그래프, 시계열 기능을 손쉽게 시작할 수 있습니다.

Redis Stack은 세 가지 구성 요소로 이루어져 있습니다:

  1. Redis Stack Server: 오픈소스 Redis에 RediSearch, RedisJSON, RedisGraph, RedisTimeSeries, RedisBloom을 결합한 서버
  2. RedisInsight: Redis 데이터를 시각화하고 최적화할 수 있는 강력한 도구로, 실시간 애플리케이션 개발을 그 어느 때보다 쉽고 즐겁게 만들어 줍니다
  3. Redis Stack 클라이언트 SDK: Java, JavaScript, Python용 공식 Redis 클라이언트를 포함합니다. 또한 몇 줄의 코드만으로 빠르게 생산성을 높일 수 있는 개발자 친화적인 추상화를 제공하는 신규 객체 매핑(Object Mapping) 라이브러리도 함께 제공됩니다. .NET, Node.js, Java, Python용 Redis OM이라 불리는 이 라이브러리들은 Spring, ASP.NET Core, FastAPI, Express 등 주요 애플리케이션 프레임워크와의 통합도 그 어느 때보다 쉽게 만들어 줍니다.
Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

Redis Stack 시작하기

Redis Stack은 현재 Redis 6.2용으로 정식 출시(GA)되었으며, Redis 7.0용 릴리스 후보(RC)도 제공됩니다.

Redis Stack을 빠르게 시작할 수 있는 몇 가지 방법은 다음과 같습니다:

  • redis.io에서 Redis Stack 직접 다운로드
  • 선호하는 패키지 관리자를 통해 설치하거나 Redis Stack Docker 이미지 실행
  • 클라우드 배포: Redis Enterprise Cloud에서 무료 데이터베이스를 생성하거나 고정(Fixed) 플랜 중 하나를 선택하여 사용. 자체 관리형 또는 온프레미스 환경을 위해서는 Redis Enterprise Software에서도 Redis Stack 기능을 제공합니다.

Redis Stack Server를 실행한 후에는 RedisInsight를 바로 활용하여 Redis 데이터를 시각화, 분석, 최적화할 수 있습니다. RedisInsight에는 다양한 Redis Stack 사용 사례를 안내하는 가이드들이 포함되어 있습니다.

클라이언트 측면에서는 Jedis(Java), redis-py(Python), node-redis(JavaScript) 등 주요 Redis 클라이언트와 새로운 객체 매핑 라이브러리(redis-om-spring, redis-om-python, redis-om-node, redis-om-dotnet)를 지원합니다. 지원하는 각 언어별 예제 저장소를 클론하여 새로 생성한 데이터베이스로 바로 개발을 시작할 수 있습니다.

Redis와 Redis Stack의 관계

저희는 Redis Stack이 실현하게 될 실시간 애플리케이션의 무한한 가능성에 대해 큰 기대를 품고 있습니다. 하지만 분명히 말씀드리고 싶은 것은, Redis Stack은 Redis를 대체하는 제품이 아니라는 점입니다.

Redis는 핵심 오픈소스 기술이며, 이를 지속적으로 개발하려는 저희의 의지는 변하지 않습니다. 언제든지 오픈소스 Redis를 다운로드하고, 빌드하고, 설치하고, 실행할 수 있습니다.

Redis Stack으로 전환할 준비가 되었다면, Redis 복제(replication) 메커니즘을 활용하거나 RDB 또는 AOF 파일을 로드하는 방식으로 손쉽게 데이터를 마이그레이션할 수 있습니다.

Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

라이선스 정책

Redis Stack의 모든 코드베이스 구성 요소는 누구나 자유롭게 사용할 수 있습니다.

다만 Redis Stack의 라이선스 모델에 대해서는 명확히 말씀드리고자 합니다:

  • Redis Stack Server는 Redis Source Available License(RSAL)로 제공됩니다(기존 Redis 모듈에 적용된 것과 동일한 라이선스)
  • RedisInsight는 기존의 Server Side Public License(SSPL)로 제공됩니다
  • 주요 Redis 클라이언트와 객체 매핑 라이브러리는 오픈소스 MIT 라이선스로 공개되었습니다
Redis Stack 정식 공개: 실시간 애플리케이션 개발을 위한 올인원 솔루션

마무리하며

저희는 Redis를 오픈소스 프로젝트로서 계속 개발하고, 세계 최대 규모의 개발자 커뮤니티 중 하나를 지원하며, 프로젝트에 활발히 기여하는 늘어나는 컨트리뷰터들과 협력해 나갈 것을 약속합니다.

또한 Redis Stack에 기능을 계속 추가하여, 개발자가 Redis만으로 실시간 시대에 걸맞은 현대적인 애플리케이션을 빠르고 쉽게 개발할 수 있도록 만들어 나가겠습니다.

Redis Stack과 그 기능에 대해 더 알아보려면 RedisDays 행사에서 진행된 딥다이브 세션을 온디맨드로 시청해 보세요.

예상되는 질문들에 대한 빠른 답변도 FAQ 섹션에 정리해 두었습니다.
마지막으로 Redis Stack에 대한 여러분의 의견을 듣고 싶습니다. Redis 메일링 리스트에 글을 남기거나 Redis Discord 서버에 참여하여 피드백을 보내주세요.

자주 묻는 질문(FAQ)

Redis Stack은 어떤 구성 요소로 이루어져 있나요?

Redis Stack은 오픈소스 Redis에 주요 Redis 모듈을 포함한 Redis Stack Server와 RedisInsight를 하나의 패키지로 담고 있습니다.

Redis Stack Server의 첫 번째 릴리스에는 다섯 가지 모듈이 포함됩니다: RedisJSON, RediSearch, RedisGraph, RedisTimeSeries, RedisBloom.

Redis Stack은 공식 Redis 클라이언트와 객체 매핑 라이브러리로 지원되며, Spring, ASP.NET Core, Express, FastAPI 등 여러 애플리케이션 프레임워크에서 Redis Stack의 고급 기능을 손쉽게 사용할 수 있습니다.

Redis Stack은 개발자에게 어떤 기능을 제공하나요?

Redis Stack을 통해 개발자는 다음 작업을 수행할 수 있습니다:

  • Redis 데이터 색인 및 쿼리, 집계(aggregation) 실행, 전문(full-text) 검색 수행
  • KNN 등 고급 벡터 유사도 검색 실행
  • 중첩된 JSON 문서를 효율적으로 저장 및 조작
  • 속성 그래프(property graph) 형태로 관계 구축 및 모델링
  • 시계열 데이터 저장, 쿼리, 집계
  • 빠르고 공간·연산 효율이 뛰어난 확률형 데이터 구조 활용
  • RedisInsight를 활용한 Redis 데이터 시각화, 디버깅, 분석

Redis Stack에 더 많은 기능이 추가될 예정인가요?

다음 조건을 충족하는 경우 새로운 기능이나 모듈을 Redis Stack에 추가하는 것을 검토할 예정입니다:

  1. 커뮤니티에서 수요가 확인될 때
  2. 새로운 기능이 Redis의 비전에 부합할 때
  3. Redis Inc. 엔지니어링 팀이 해당 기능을 공식적으로 지원할 수 있을 때

RedisGears는 첫 Redis Stack 릴리스에 포함되지 않았나요?

RedisGears는 데이터베이스 트리거, 스트림 처리, 분산 함수, 완전한 프로그래밍 기능을 Redis에 추가합니다.

올해 말 JavaScript 지원이 GA(정식 출시)되면 Redis Stack에 RedisGears를 추가할 예정입니다.

Redis Stack을 무료로 자체 관리할 수 있나요?

네, 물론입니다!

Redis 객체 매핑(Object-Mapping) 라이브러리란 무엇인가요?

Redis 객체 매핑 라이브러리는 SQL 데이터베이스에서 ORM이 하는 역할과 유사하게, Redis 명령 API 위에 추상화 계층을 제공합니다. 핵심 Redis 클라이언트 라이브러리와 객체 매핑 라이브러리의 역할을 구분해 보겠습니다.

핵심 Redis 클라이언트 라이브러리의 역할:

  • Redis 프로토콜(RESP 등) 구현
  • 연결(TCP 등) 관리, 재연결, 서버 탐색 등 처리
  • 실행 로직 관리(스레드, 비동기 I/O 등)
  • 임의의 Redis 명령을 실행할 수 있는 API 노출
  • 각 언어의 관용적(idiomatic) 방식으로 Redis 명령 노출
  • 연결 문자열을 통해 모든 Redis 배포 환경에 연결

객체 매핑 라이브러리가 제공하는 추가적인 장점:

  • 가장 적은 코드량으로 일반적인 Redis 사용 사례를 구현할 수 있도록 지원. 현재는 도메인 모델링과 플루언트(fluent) 쿼리 API를 포함하며, 향후에는 캐싱, 세션 저장, 속도 제한(rate limiting), 리더보드, 중복 제거기 등의 사용 사례 지원도 추가될 예정입니다.
  • Redis Stack이 제공하는 기능을 위한 고수준 API 노출
  • 내부 Redis 명령을 노출하지 않으면서도 Redis의 장점 제공
  • 주요 애플리케이션 프레임워크(Spring, ASP.NET Core, FastAPI, Express 등)와의 통합

이러한 객체 매핑 라이브러리는 항상 하나 이상의 핵심 Redis 라이브러리에 의존합니다.

.NET용 Redis Stack 클라이언트가 있나요?

현재 .NET 개발자에게 권장되는 클라이언트는 StackExchange이며, 이는 Redis Inc.의 공식 지원 대상은 아닙니다. NRediSearch(RediSearch용), NRedisGraph(RedisGraph용), NRedisTimeSeries(RedisTimeSeries용) 확장을 함께 사용할 수 있으며, StackExchange 위에 구축된 redis-om-dotnet 라이브러리도 활용 가능합니다.

Redis Enterprise Cloud에서 RedisInsight를 사용할 수 있나요?

아직 Redis Enterprise Cloud에서는 RedisInsight를 사용할 수 없습니다. 다만 RedisInsight 애플리케이션으로 클라우드 데이터베이스에 연결할 수는 있습니다. 올해 안에 클라우드에 RedisInsight를 추가할 계획입니다.

Redis Stack 데이터베이스를 Redis Enterprise Cloud로 쉽게 마이그레이션할 수 있나요?

네, Replica-Of 솔루션을 활용하면 다운타임 없이 데이터베이스를 완전 관리형 클라우드 서비스로 마이그레이션할 수 있습니다.