오늘 우리는 강력한 쿼리, 인덱싱 및 전체 텍스트 검색 엔진을 모든 Redis 사용자에게 제공하는 RediSearch 2.0의 일반 가용성을 발표하게 된 것을 기쁘게 생각합니다. 2020년 9월부터 공개 프리뷰에서 RediSearch 2.0은 최신 애플리케이션 생성에서 전체 텍스트 검색, 실시간 분석에 이르기까지 수많은 사용 사례에 대해 의존하는 고객 목록이 이미 증가하고 있습니다. RediSearch 2.0은 RediSearch 1.6보다 2배 이상 빠른 새로운 아키텍처를 도입했으며 RediSearch는 이제 Redis의 Active-Active 지역 배포 및 Redis on Flash를 지원합니다.
RediSearch가 중요한 이유
현대 조직은 많은 양의 정형 및 비정형 데이터를 캡처하고 있습니다. 그러나 이 데이터는 최신 애플리케이션에 대한 실시간 경험을 지원하지 않는 느린 디스크 기반 데이터베이스에 너무 자주 잠겨 있습니다. RediSearch는 사용자가 Redis 데이터 세트를 쉽게 인덱싱한 다음 Redis의 속도로 실시간으로 완전히 분산된 방식으로 데이터를 쿼리 및 집계할 수 있도록 하여 이러한 성능 병목 현상을 제거합니다.
위의 다이어그램에서 볼 수 있듯이 RediSearch는 전체 텍스트, 지리적 위치, 숫자 및 태그를 포함하여 키의 값 부분에 대한 여러 인덱싱 전략을 제공하여 Redis에 보다 정교한 데이터 모델링을 제공합니다. 인덱스가 없으면 Redis는 모든 쿼리에 대해 SCAN 작업을 수행해야 하므로 매우 느리고 비효율적일 수 있습니다. 그리고 이러한 인덱스를 수동으로 만들고 유지 관리하는 것은 복잡하고 오류가 발생하기 쉽습니다. RediSearch는 사용자를 위해 이러한 인덱스를 유지 관리하고 클러스터된 데이터베이스의 데이터 구조 전반에 걸쳐 쿼리할 수 있도록 합니다.
기술 스택에 RediSearch를 추가하면 데이터 인프라가 간소화되고, 풍부한 검색 경험을 통해 애플리케이션이 확장되며, Redis에서 분석의 힘이 발휘됩니다. 개발자는 더 이상 최신 애플리케이션을 만들기 위해 여러 기술, 쿼리 언어, 데이터 모델 및 볼트온 검색 엔진 사이를 왔다갔다 할 필요가 없습니다.
RediSearch 사용
C로 작성된 RediSearch는 Trie와 같은 인메모리 데이터 구조를 사용하고 최신 분산 인덱싱 및 쿼리 알고리즘을 활용하여 성능을 염두에 두고 구축되었습니다. 따라서 기존 검색 엔진보다 5배 – 10배 더 빠릅니다(RediSearch의 속도에 대한 자세한 내용은 검색 벤치마킹:RediSearch 대 Elasticsearch 참조). RediSearch의 저지연 인덱싱 및 데이터 쿼리는 자주 업데이트되는 데이터세트에 적합합니다. 그리고 새로운 RediSearch 2.0은 이전 버전보다 2.4배 빨라졌습니다.
RediSearch를 사용하면 Redis에서 여러 데이터 유형의 데이터세트에 대한 인덱스를 빠르게 생성할 수 있습니다. (현재 해시가 지원되며 곧 JSON에 대한 지원을 출시하고 Streams에 대한 지원을 출시할 계획입니다.) RediSearch는 가벼운 인덱스 생성 및 삭제를 위해 증분 인덱싱 접근 방식을 사용합니다. 풍부한 쿼리 언어를 사용하면 번개 같은 속도로 데이터를 쿼리하고 복잡한 집계를 수행하며 속성, 숫자 범위 및 지리적 거리를 기준으로 필터링할 수 있습니다.
RediSearch는 중국어, 스페인어, 러시아어, 프랑스어, 독일어 등을 비롯한 여러 언어로 전체 텍스트 인덱싱 및 형태소 분석 기반 쿼리 확장을 지원합니다. 또한 '퍼지' 검색 기술을 사용하여 자동 완성 제안을 구현하여 사용자의 검색 경험을 풍부하게 할 수 있습니다.
또한 이 최신 릴리스는 RediSearch를 그 어느 때보다 쉽게 확장할 수 있도록 합니다. RediSearch 2.0을 통해 고객은 이제 수백 대의 서버에서 수십억 개의 문서를 쿼리하고 색인화할 수 있도록 빠르게 성장할 수 있습니다. 그리고 Redis on Flash를 지원하므로 그 어느 때보다 비용 효율적인 방식으로 이를 수행할 수 있습니다. RediSearch는 또한 Redis Enterprise의 Active-Active 기술을 활용하여 지리적으로 분산된 여러 복제본에서 99.999%의 가용성을 제공함으로써 전 세계적으로 분산된 방식으로 배포할 수 있으며, 이를 통해 쿼리 및 집계와 같은 읽기 작업과 쓰기 작업(예:indexing) 충돌 해결에 대한 걱정 없이 로컬 RediSearch 배포 속도로 실행됩니다.
실제 세계에서의 RediSearch
다양한 데이터 유형과 데이터 구조에 대한 인덱싱, 쿼리 및 전체 텍스트 검색을 활성화하는 것은 사용자가 데이터의 힘을 최대한 활용할 수 있도록 돕는 데 필수적입니다. 확장 제한 없이 밀리초 미만의 대기 시간으로 완전히 분산된 방식으로 이러한 쿼리를 실행할 수 있는 RediSearch의 기능은 진정한 게임 체인저입니다.
우리 고객은 레디서치를 사용하여 레거시 애플리케이션을 가속화할 뿐만 아니라 차세대 실시간 애플리케이션을 생성합니다. 예를 들어 GoMechanic은 RediSearch를 사용하여 1천만 개의 예비 부품 데이터베이스를 검색합니다(자세한 내용은 RediSearch 2.0 보도 자료 참조). 많은 전자 상거래 앱은 RediSearch를 사용하여 카탈로그에 있는 수백만 개의 제품에 대한 대화형 검색을 제공하고 퍼지 검색을 사용하여 사용자에게 자동 완성 제안을 제공합니다.
RediSearch의 임시 검색 기능을 사용하면 인덱스 생성이 간단하여 동일한 데이터베이스에서 수천 개의 인덱스를 사용할 수 있으므로 개발자는 예를 들어 고객의 구매 내역을 기반으로 인덱스를 빠르게 생성하고 만료할 수 있습니다. 한편, 한 건강 보험 회사는 RediSearch를 사용하여 사용자가 웹 사이트와 앱에서 지리 공간 쿼리를 실행하여 이웃에서 적절한 의료 서비스 제공자를 찾을 수 있도록 하고 있습니다. 이러한 모든 용도는 이미 프로덕션 환경에서 대규모로 배포되고 있습니다.
RediSearch 2.0 시작하기
RediSearch 2.0을 사용하여 애플리케이션 현대화 여정을 가속화하는 방법을 알아보십시오. 또는 바로 시작하려면 RediSearch 빠른 시작 페이지를 방문하십시오.