Valkey は、キャッシュ保存、メッセージ キュー、セッション ストアなど、さまざまなアプリケーション構築のニーズに使用できるインメモリ Key-Value データストアです。また、RAM にデータを保存して読み書きを高速化する、プライマリ インメモリ データベースとしても使用できます。
NoSQL データベースである Valkey は、データを厳密に列と行に保存するリレーショナル データベースよりも柔軟なスキーマを備えています。
Valkey は、シンプルな Key-Value メソッドを使用してデータを保存します。このメソッドでは、値が一意の識別子であるキーにマッピングされます。これにより、キーで直接データを取得する際に、非常に高速な検索が可能になります。また、文字列、セット、リスト、ハッシュ、ストリームなど、さまざまなデータ型に対応できる柔軟性も備えています。
Valkey クラスタのセットアップに直接進むには、Memorystore の利用を開始する方法をご覧ください。
Valkey はオープンソースの Key-Value データストアです。レイテンシが非常に低いため、キャッシュ保存、メッセージ キュー、リアルタイム データを必要とするアプリケーションに最適です。Valkey の主な機能の概要を簡単に見ていきましょう。
Valkey は、文字列、ハッシュ、リスト、セット、並べ替え済みセットなど、さまざまなデータ型を保存できます。また、ストリーム、地理空間インデックス、ビットマップ、ベクトルなどの高度なデータ型もサポートしているため、AI エージェントを含む幅広いアプリケーションに対応できる汎用性の高いツールとなっています。
Valkey のようなインメモリ データベースを使用する主な理由は、速度です。RAM からのデータアクセスはディスクからの読み取りよりも高速であるため、Valkey は、多くの場合ミリ秒未満という非常に低いレイテンシを実現できます。この高速性は、リアルタイム キャッシュや、即時のデータアクセスが不可欠な高速分析などのユースケースでは非常に重要です。
主な違いは、データの構造化、保存、取得の方法です。Valkey のような Key-Value データベースでは、データは一意のキーのコレクションとして保存され、各キーは 1 つの値とペアになっています。このシンプルなモデルでは、特にキーでデータを検索する場合に迅速に取得できます。一方、リレーショナル データベースでは、関連データをリンクする JOIN を使用してデータをテーブルに保存します。このモデルは、複数のコレクションからデータを取得する必要があるクエリで最高のパフォーマンスを発揮します。
Valkey は、高速性だけでなく、要求の厳しいワークロードに必要な柔軟性、スケーラビリティ、復元力を兼ね備えています。
高速インメモリ データベース
Valkey は、主にディスクではなく RAM にデータを保存することで、非常に高いスループットと低レイテンシを実現しており、速度が最重要となるアプリケーションに最適です。
オープンソース
オープンソース プロジェクトである Valkey は、コミュニティの協力が得られ、ライセンス制限なしで統合およびカスタマイズできる柔軟性を備えています。
高可用性
Valkey は、自動フェイルオーバーとデータ冗長化のためのマスター / レプリカ レプリケーションをサポートしており、ダウンタイムを最小限に抑え、継続的なサービスを提供します。
データの永続性
Valkey は主としてインメモリ データベースですが、データ損失を防ぐための永続化オプションも提供しています。RDB(Redis データベース)スナップショットと AOF(追記専用ファイル)ログを使用してデータをディスクに保存し、再起動後もデータの耐久性を確保できます。
シームレスな水平スケーリング
Valkey は、複数のノードとクラスタにデータを効率的に分散するように設計されています。つまり、パフォーマンスを低下させることなく、簡単にスケールアウトしてトラフィックの増加に対応できます。
リアルタイム通信
Valkey は Pub/Sub メッセージング システムを提供し、さまざまなアプリケーション間や、単一のアプリケーションの異なる部分間でのリアルタイム通信を可能にします。これにより、ライブチャットやリアルタイムのデータフィードなどの機能をサポートできます。
Valkey などのインメモリ データストアは、特に超低レイテンシが求められるアプリケーションや機能に適しています。たとえば、次のようなシナリオです。
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 コアでコマンドを並列処理する機能)を中心に、大幅な機能強化が加えられています。
よりきめ細かい制御、カスタマイズ、特定のデプロイ構成を希望する場合は、Valkey を Google Cloud のコンピューティング インフラストラクチャに手動でデプロイできます。この方法では、環境を完全に監視できます。
Memorystore for Valkey は、クラウドで高パフォーマンス、高可用性、スケーラビリティに優れた Valkey サービスを提供するフルマネージド サービスです。
これにより、基盤となるインフラストラクチャを管理する運用上や財務上の負担を伴うことなく、インメモリ データベースのメリットが得られます。
Google Cloud がパッチ適用、セキュリティ、スケーリングなどの管理ワークロードを処理するため、ユーザーはリアルタイム データを使用したアプリケーションの構築に集中できます。