Valkey란 무엇인가요?

Valkey는 캐싱, 메시지 큐, 세션 저장소를 비롯한 다양한 애플리케이션 빌드 요구사항에 사용할 수 있는 인메모리 키-값 데이터 저장소입니다. 또한 빠른 읽기 및 쓰기 속도를 위해 RAM에 데이터를 저장하는 기본 인메모리 데이터베이스로 사용할 수도 있습니다.

NoSQL 데이터베이스인 Valkey는 엄격한 열과 행에 데이터를 저장하는 관계형 데이터베이스보다 더 유연한 스키마를 갖습니다.

Valkey는 데이터 스토리지에 단순한 키-값 방식을 사용합니다. 여기서 값은 고유 식별자인 키에 매핑됩니다. 이를 통해 키로 직접 데이터를 검색할 때 매우 빠르게 조회할 수 있습니다. 또한 문자열, 집합, 목록, 해시, 스트림을 비롯한 다양한 데이터 유형을 수용할 수 있는 유연성을 제공합니다.

바로 Valkey 클러스터 설정을 시작하고 싶으신가요? Memorystore를 시작하는 방법 알아보기

핵심 내용

Valkey는 오픈소스 키-값 데이터 스토어입니다. 지연 시간이 매우 짧은 것으로 알려져 있어 캐싱, 메시지 큐, 실시간 데이터가 필요한 애플리케이션에 적합합니다. Valkey의 주요 기능을 간략하게 살펴보겠습니다.

  • 인메모리 데이터 스토어: 주로 RAM에 데이터를 저장하여 매우 빠른 읽기 및 쓰기 속도를 제공합니다.
  • 키-값 메서드: 키-값 쌍으로 데이터를 저장하여 다양한 데이터 유형에 대한 유연성과 빠른 조회를 제공합니다.
  • Redis 대안: Valkey는 Redis와 동일한 코드베이스에서 발전했지만 오픈소스로 유지됩니다.


Valkey FAQ

Valkey는 문자열, 해시, 목록, 집합, 정렬된 집합 등 다양한 데이터 유형을 저장할 수 있습니다. 또한 스트림, 지리 공간 색인, 비트맵, 벡터와 같은 고급 데이터 유형을 지원하므로 AI 에이전트를 비롯한 광범위한 애플리케이션에 사용할 수 있는 다목적 도구입니다.


Valkey와 같은 인메모리 데이터베이스를 사용하는 주된 이유는 속도입니다. RAM에서 데이터에 액세스하는 것이 디스크에서 데이터를 읽는 것보다 빠르므로 Valkey는 1밀리초 미만의 매우 짧은 지연 시간을 달성할 수 있습니다. 이러한 속도는 즉각적인 데이터 액세스가 필수적인 실시간 캐싱 및 빠른 분석과 같은 사용 사례에 매우 중요합니다.


주요 차이점은 데이터를 구조화, 저장, 검색하는 방식에 있습니다. Valkey와 같은 키-값 데이터베이스는 데이터를 고유한 키 컬렉션으로 저장하며, 각 키는 단일 값과 쌍을 이룹니다. 이 단순한 모델은 키를 기준으로 데이터를 구체적으로 조회할 때 빠른 검색을 제공합니다. 반면 관계형 데이터베이스는 관련 데이터를 연결하는 JOIN을 사용하여 테이블에 데이터를 저장합니다. 이 모델은 여러 컬렉션에서 데이터를 가져와야 하는 쿼리에 대해 최상의 성능을 제공합니다.


Valkey 사용의 이점

Valkey는 까다로운 워크로드에 필요한 속도와 유연성, 확장성, 복원력을 결합합니다.

고속 인메모리 데이터베이스

Valkey는 주로 디스크가 아닌 RAM에 데이터를 저장하여 매우 높은 처리량과 짧은 지연 시간을 제공하므로 속도가 중요한 애플리케이션에 적합합니다.

오픈소스

오픈소스 프로젝트인 Valkey는 커뮤니티의 참여와 라이선스 제한 없이 통합 및 맞춤설정할 수 있는 유연성을 활용합니다.


고가용성

Valkey는 자동 장애 조치 및 데이터 중복을 위한 마스터-복제본 복제를 지원하여 다운타임을 최소화하고 지속적인 서비스를 제공합니다.

데이터 지속성

Valkey는 주로 인메모리 데이터베이스이지만 데이터 손실을 방지하기 위한 지속성 옵션을 제공합니다. RDB(Redis 데이터베이스) 스냅샷과 AOF(Append-Only File) 로그를 통해 데이터를 디스크에 저장하여 재시작 후에도 데이터 내구성을 보장할 수 있습니다.


원활한 수평 확장

Valkey는 여러 노드와 클러스터에 데이터를 효율적으로 분산하도록 설계되었습니다. 즉, 성능 저하 없이 증가하는 트래픽을 처리하기 위해 쉽게 수평 확장할 수 있습니다.


실시간 커뮤니케이션

Valkey는 Pub/Sub 메시징 시스템을 제공하여 다양한 애플리케이션 또는 단일 애플리케이션의 여러 부분 간에 실시간 통신을 지원합니다. 이를 통해 실시간 채팅 및 실시간 데이터 피드와 같은 기능을 지원할 수 있습니다.


Valkey의 일반적인 사용 사례

Valkey와 같은 인메모리 데이터 스토어는 지연 시간이 매우 짧아야 하는 애플리케이션과 기능에 특히 적합합니다. 여기에는 다음이 포함될 수 있습니다.

  • 캐싱: Valkey는 느린 디스크 기반 데이터베이스 앞에 고속 캐시 레이어 역할을 할 수 있습니다. 자주 액세스하는 데이터는 Valkey에 저장하여 기본 데이터베이스의 부하를 크게 줄이고 응답 시간을 단축할 수 있습니다.
  • 메시지 : Valkey의 Pub/Sub 기능은 메시지 브로커로서 탁월한 선택입니다. 이를 사용하면 채팅 애플리케이션 및 알림과 같은 사용 사례를 지원하면서 다양한 서비스 또는 마이크로서비스 간의 실시간 통신을 촉진할 수 있습니다.
  • 실시간 분석: 택배 추적기, 내비게이션 앱, 게임 리더보드와 같이 데이터를 실시간으로 처리하고 분석해야 하는 애플리케이션의 경우 Valkey의 속도가 이상적인 선택입니다.
  • 세션 저장소: 전자상거래 사이트나 소셜 미디어 플랫폼과 같은 웹 애플리케이션에서 사용자 세션을 관리하려면 사용자 환경설정, 로그인 상태, 장바구니 콘텐츠에 빠르게 액세스해야 합니다. Valkey는 이러한 세션 데이터를 저장하고 검색하는 빠르고 안정적인 방법을 제공합니다.
  • 머신러닝: Valkey의 낮은 지연 시간과 벡터 검색 기능은 머신러닝을 사용하는 애플리케이션을 위한 강력한 데이터베이스로 만들어 줍니다. 벡터 임베딩(텍스트나 이미지와 같은 데이터의 수치적 표현)을 저장하고 빠르게 검색하여 복잡한 유사성 검색을 수행할 수 있습니다. 이를 통해 사용자에게 유사한 제품, 기사 또는 미디어를 실시간으로 추천할 수 있습니다.

Valkey와 Redis 비교

Valkey는 원래 Redis 7.2에서 포크되었으므로 동일한 코드베이스에서 시작되었으며 일부 기본 특성과 기능을 공유합니다. Valkey와 마찬가지로 Redis는 높은 처리량을 제공하고 다양한 데이터 구조를 지원하는 인메모리 키-값 데이터 스토어입니다. 둘 다 고가용성과 확장성으로 유명합니다.

가장 큰 차이점은 Valkey가 허용적인 BSD 라이선스에 따라 출시된 오픈소스라는 점입니다. 따라서 개발자는 소프트웨어를 자유롭게 사용하고 수정하며 기여할 수 있습니다.

2024년, Redis Inc.가 더 제한적인 '소스 제공' 라이선스로 전환함에 따라 Valkey가 만들어졌습니다. 커뮤니티를 위한 오픈소스 대안을 유지하기 위해 여러 핵심 Redis 기여자가 모여 Redis의 최종 오픈소스 버전을 기반으로 Valkey를 출시했습니다.

Valkey는 협업적이고 커뮤니티 주도적인 개발 접근방식을 따르며, 로드맵과 새로운 기능은 Google Cloud를 비롯한 주요 클라우드 공급업체의 기여를 통해 Linux Foundation 프로젝트에 참여하는 회원들이 결정합니다.

Valkey 8.0 이후 Valkey 엔진이 크게 개선되었으며, 벡터 검색 개선, 클러스터 관리 개선, 멀티 스레드 명령어 실행(여러 CPU 코어에서 명령어를 병렬로 처리하는 기능)에 중점을 두었습니다.

Google Cloud로 Valkey 배포를 자체 관리하세요

더 세부적인 제어, 맞춤설정 또는 특정 배포 구성을 원하는 사용자는 Valkey를 Google Cloud의 컴퓨팅 인프라에 수동으로 배포할 수 있습니다. 이 방법을 사용하면 환경을 완전히 감독할 수 있습니다.

  • Compute Engine(VM): Google Compute Engine 인스턴스(VM)를 실행하고 오픈소스 Valkey 서버를 직접 설치합니다. 이를 통해 구성, 확장 파라미터, 기본 운영체제를 완전히 자율적으로 제어할 수 있습니다.
  • Google Kubernetes Engine(GKE): Valkey는 Docker를 사용하여 쉽게 컨테이너화할 수 있으며 GKE 클러스터에서 포드 또는 스테이트풀(Stateful) 애플리케이션으로 배포할 수 있습니다. 이는 이미 Kubernetes를 활용하고 있는 애플리케이션에 적합한 접근방식으로, 강력하고 고급화된 조정 기능을 제공합니다.


Google Cloud Memorystore for Valkey로 완전 관리형 서비스를 이용하세요

Memorystore for Valkey는 클라우드에서 고성능, 고가용성, 확장 가능한 Valkey 서비스를 제공하는 완전 관리형 서비스입니다.

기본 인프라를 관리하는 데 드는 운영 및 재정적 부담 없이 인메모리 데이터베이스의 이점을 제공합니다.

Google Cloud는 패치, 보안, 확장 등 관리 워크로드를 처리하므로 사용자는 실시간 데이터를 사용해 애플리케이션을 빌드하는 데 집중할 수 있습니다.

  • 완전 관리형: Google이 프로비저닝, 패치, 장애 조치를 포함하여 Valkey 인스턴스 관리의 운영 오버헤드를 처리합니다.
  • 고성능: Google Cloud의 인프라를 활용하는 Memorystore for Valkey는 1밀리초 미만의 데이터 액세스로 까다로운 실시간 애플리케이션에 필요한 짧은 지연 시간과 높은 처리량을 제공합니다.
  • 고가용성: Memorystore는 여러 영역에 걸쳐 데이터를 자동으로 복제하여 최대 99.99%의 SLA를 제공합니다.
  • 확장 가능: Memorystore는 다운타임 없이 Valkey 인스턴스를 원활하게 확장하여 애플리케이션의 변화하는 요구사항을 충족합니다.
  • 안전: Memorystore는 가상 프라이빗 클라우드(VPC) 연결, 연중무휴 모니터링, Identity and Access Management(IAM)를 비롯한 강력한 보안 기능으로 보호됩니다.
  • AI 애플리케이션에 적합: Memorystore for Valkey는 근사 최근접 이웃(ANN) 벡터 검색과 정확한 최근접 이웃(KNN) 벡터 검색을 지원하므로 생성형 AI를 위한 이상적인 지연 시간이 짧은 데이터 스토어입니다.

Memorystore로 다음 단계 수행

$300의 무료 크레딧으로 Google Cloud에서 빌드하세요.

Google Cloud