Valkey とは

Valkey は、キャッシュ保存、メッセージ キュー、セッション ストアなど、さまざまなアプリケーション構築のニーズに使用できるインメモリ Key-Value データストアです。また、RAM にデータを保存して読み書きを高速化する、プライマリ インメモリ データベースとしても使用できます。

NoSQL データベースである Valkey は、データを厳密に列と行に保存するリレーショナル データベースよりも柔軟なスキーマを備えています。

Valkey は、シンプルな Key-Value メソッドを使用してデータを保存します。このメソッドでは、値が一意の識別子であるキーにマッピングされます。これにより、キーで直接データを取得する際に、非常に高速な検索が可能になります。また、文字列、セット、リスト、ハッシュ、ストリームなど、さまざまなデータ型に対応できる柔軟性も備えています。

Valkey クラスタのセットアップに直接進むには、Memorystore の利用を開始する方法をご覧ください。

重要ポイント

Valkey はオープンソースの Key-Value データストアです。レイテンシが非常に低いため、キャッシュ保存、メッセージ キュー、リアルタイム データを必要とするアプリケーションに最適です。Valkey の主な機能の概要を簡単に見ていきましょう。

  • インメモリ データストア: 主に RAM にデータを保存し、超高速な読み書きを可能にします。
  • Key-Value メソッド: データを Key-Value ペアで保存し、さまざまなデータ型に対応する柔軟性と迅速な検索を実現します。
  • Redis の代替: Valkey は Redis と同じコードベースから派生したものですが、オープンソースのままです。


Valkey に関するよくある質問

Valkey は、文字列、ハッシュ、リスト、セット、並べ替え済みセットなど、さまざまなデータ型を保存できます。また、ストリーム、地理空間インデックス、ビットマップ、ベクトルなどの高度なデータ型もサポートしているため、AI エージェントを含む幅広いアプリケーションに対応できる汎用性の高いツールとなっています。


Valkey のようなインメモリ データベースを使用する主な理由は、速度です。RAM からのデータアクセスはディスクからの読み取りよりも高速であるため、Valkey は、多くの場合ミリ秒未満という非常に低いレイテンシを実現できます。この高速性は、リアルタイム キャッシュや、即時のデータアクセスが不可欠な高速分析などのユースケースでは非常に重要です。


主な違いは、データの構造化、保存、取得の方法です。Valkey のような Key-Value データベースでは、データは一意のキーのコレクションとして保存され、各キーは 1 つの値とペアになっています。このシンプルなモデルでは、特にキーでデータを検索する場合に迅速に取得できます。一方、リレーショナル データベースでは、関連データをリンクする JOIN を使用してデータをテーブルに保存します。このモデルは、複数のコレクションからデータを取得する必要があるクエリで最高のパフォーマンスを発揮します。


Valkey を使用するメリット

Valkey は、高速性だけでなく、要求の厳しいワークロードに必要な柔軟性、スケーラビリティ、復元力を兼ね備えています。

高速インメモリ データベース

Valkey は、主にディスクではなく RAM にデータを保存することで、非常に高いスループットと低レイテンシを実現しており、速度が最重要となるアプリケーションに最適です。

オープンソース

オープンソース プロジェクトである Valkey は、コミュニティの協力が得られ、ライセンス制限なしで統合およびカスタマイズできる柔軟性を備えています。


高可用性

Valkey は、自動フェイルオーバーとデータ冗長化のためのマスター / レプリカ レプリケーションをサポートしており、ダウンタイムを最小限に抑え、継続的なサービスを提供します。

データの永続性

Valkey は主としてインメモリ データベースですが、データ損失を防ぐための永続化オプションも提供しています。RDB(Redis データベース)スナップショットと AOF(追記専用ファイル)ログを使用してデータをディスクに保存し、再起動後もデータの耐久性を確保できます。


シームレスな水平スケーリング

Valkey は、複数のノードとクラスタにデータを効率的に分散するように設計されています。つまり、パフォーマンスを低下させることなく、簡単にスケールアウトしてトラフィックの増加に対応できます。


リアルタイム通信

Valkey は Pub/Sub メッセージング システムを提供し、さまざまなアプリケーション間や、単一のアプリケーションの異なる部分間でのリアルタイム通信を可能にします。これにより、ライブチャットやリアルタイムのデータフィードなどの機能をサポートできます。


Valkey の一般的なユースケース

Valkey などのインメモリ データストアは、特に超低レイテンシが求められるアプリケーションや機能に適しています。たとえば、次のようなシナリオです。

  • キャッシュ保存: Valkey は、低速なディスクベースのデータベースの前に配置して高速キャッシュ レイヤとして利用できます。頻繁にアクセスされるデータを Valkey に保存することで、プライマリ データベースの負荷を大幅に軽減し、応答時間を短縮できます。
  • メッセージ キュー: Valkey は Pub/Sub 機能を備えているため、メッセージ ブローカーとして最適です。これを使用してさまざまなサービスやマイクロサービス間のリアルタイム通信を促進し、チャット アプリケーションや通知などのユースケースに対応できます。
  • リアルタイム分析: 荷物追跡、ナビゲーション アプリ、ゲームのリーダーボードなど、データをリアルタイムで処理および分析する必要があるアプリケーションでは、Valkey はその高速性により理想的な選択肢となります。
  • セッション ストア: e コマースサイトやソーシャル メディア プラットフォームなどのウェブ アプリケーションでユーザー セッションを管理するには、ユーザーの好み、ログイン ステータス、ショッピング カートの中身にすばやくアクセスする必要があります。Valkey は、このようなセッション データを保存および取得するための高速かつ信頼性の高い方法を備えています。
  • ML: Valkey は低レイテンシでベクトル検索機能を備えているため、ML を使用するアプリケーション向けの強力なデータベースとしても機能します。ベクトル エンベディング(テキストや画像などのデータの数値表現)を保存して迅速に検索し、複雑な類似検索を実行できます。これを使用して、類似の商品、記事、メディアをリアルタイムでユーザーに提案できます。

Valkey と Redis の比較

Valkey は当初 Redis 7.2 からフォークされたもので、同じコードベースから派生しているため、基本的な特性や機能の一部を共有しています。Valkey と同様に、Redis はインメモリの Key-Value データストアであり、高スループットを実現し、さまざまなデータ構造に対応しています。どちらも高可用性とスケーラビリティに優れています。

主な違いは、Valkey がオープンソースであることです。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 クラスタ上の Pod またはステートフル アプリケーションとしてデプロイできます。これは、すでに Kubernetes を利用しているアプリケーションに適したアプローチであり、堅牢で高度なオーケストレーション機能を提供します。


Google Cloud Memorystore for Valkey でフルマネージド サービスを利用

Memorystore for Valkey は、クラウドで高パフォーマンス、高可用性、スケーラビリティに優れた Valkey サービスを提供するフルマネージド サービスです。

これにより、基盤となるインフラストラクチャを管理する運用上や財務上の負担を伴うことなく、インメモリ データベースのメリットが得られます。

Google Cloud がパッチ適用、セキュリティ、スケーリングなどの管理ワークロードを処理するため、ユーザーはリアルタイム データを使用したアプリケーションの構築に集中できます。

  • フルマネージド: Google が、プロビジョニング、パッチ適用、フェイルオーバーなど、Valkey インスタンスの管理に伴う運用上のオーバーヘッドを処理します。
  • パフォーマンス: Google Cloud のインフラストラクチャを活用する Memorystore for Valkey は、要求の厳しいリアルタイム アプリケーションに必要な低レイテンシと高スループットを実現し、ミリ秒未満のデータアクセスを可能にします。
  • 可用性: Memorystore は複数のゾーンにわたってデータを自動的にレプリケートし、最大 99.99% の SLA を提供します。
  • スケーラブル: Memorystore は、アプリケーションの需要の変化に対応するため、ダウンタイムなしで Valkey インスタンスをシームレスにスケーリングできます。
  • 安全: Memorystore は、Virtual Private Cloud(VPC)接続、24 時間 365 日のモニタリング、Identity and Access Management(IAM)などの堅牢なセキュリティ機能で保護されています。
  • AI アプリケーションに最適: Memorystore for Valkey は、近似最近傍(ANN)ベクトル検索と厳密最近傍(KNN)ベクトル検索をサポートしており、生成 AI に最適な低レイテンシのデータストアです。

Memorystore で次のステップへ

$300 分の無料クレジットを利用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud