コンテンツに移動
データベース

Memorystore for Valkey 9.0 の一般提供を開始: 次世代のキャッシュ保存

2026年3月26日
Ankit Sud

Senior Product Manager, Google

Jacob Murphy

Software Engineer

Try Gemini Enterprise Business Edition today

The front door to AI in the workplace

Try now

※この投稿は米国時間 2026 年 3 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。

高スループット、低レイテンシのアプリケーション構築を目指すバックエンド デベロッパーやアーキテクトの間で、Valkey の利用が進んでいます。Valkey は、オープンソースで高性能な Key-Value データストアであり、キャッシュ保存やメッセージ キューなどのさまざまなワークロードに対応します。Google Cloud では、Google Cloud Memorystore の一部としてValkey のフルマネージド バージョンを提供していますが、このたび、Valkey 9.0  の一般提供(GA)を開始しましたのでお知らせいたします。Valkey 9.0 は、パフォーマンスが大幅に向上しているほか、デベロッパー向けの優れた新機能を提供しています。

プレビュー期間中は、最高レベルのパフォーマンスを求めるお客様から大きな関心が寄せられ、多数の方にご利用いただきました。スケールとレイテンシの限界に挑む各社が、特に要求の厳しいワークロードで Valkey 9.0 の真価を試しています。

「Snap のインフラストラクチャにとって、高パフォーマンスのキャッシュ レイヤは非常に重要です。Google Cloud Memorystore で Valkey 9.0 の一般提供が開始されたことを大変嬉しく思います。SIMD 最適化などの新しいアーキテクチャ強化によりパフォーマンスが大幅に向上し、スループットとレイテンシに反映されています。オープン スタンダードを基盤としたマネージド サービスを利用することで、キャッシュ ワークロードのデプロイおよび管理方法において貴重な柔軟性を得ることができています。」- Snap、プリンシパル ソフトウェア エンジニア、Ovais Khan 氏

スピードと柔軟性に対する飽くなきニーズは、ソーシャル ネットワークのインフラストラクチャに限った話ではありません。リアルタイムのトランザクション処理および信頼性が必要不可欠な金融業界でも、同様のニーズが広がっています。

「金融サービス業界では、ミリ秒単位の時間が重要であり、データの信頼性が最優先事項です。当社は、インドの大手銀行向けの UPI Acquirer Switch (統一決済処理機関用スイッチ)の重要な基盤である GPay スタックで、Google Cloud の Memorystore for Valkey を活用しています。これにより、極めて低いレイテンシかつ高スループットでトランザクション データを処理することが可能となっています。

Valkey 9.0 の一般提供が開始されたことを大変嬉しく思います。パイプライン メモリのプリフェッチなどのパフォーマンス向上に加えて、真のオープンソース ソリューションをフルマネージドで利用できることから、あらゆるお客様にサービスを安全に提供するために必要なスケールと信頼性を確保できます。」- Juspay、UPI 責任者、Arun Ramprasadh 氏

また、メディアおよびエンターテイメント業界は、膨大な数の視聴者にシームレスなエクスペリエンスを提供するのが仕事ですが、そのために、トラフィックの急増に即座に対応できるようなキャッシュ レイヤを必要としています。

「Google Cloud Memorystore で Valkey 9.0 のプレビュー版を使用しましたが、驚くほどのパフォーマンスと安定性を実感しました。ライブ ストリーミングでは、レイテンシを最小限に抑え、スループットを最大化することが求められます。Valkey 9.0 のアーキテクチャ強化により、キャッシュ レイヤをより効率的にスケールして、大規模イベント中のトラフィック急増に対処できるようになりました。フルマネージドのオープンソース ソリューションのおかげで、視聴者にシームレスな視聴体験を提供することが可能となっています。」- Fubo、プラットフォーム エンジニアリング マネージャー、Kevin Anthony 氏

スケーリング時のパフォーマンス: 妥協のないスピード

Valkey 9.0 は、素のスピード向上を追求した設計となっています。Valkey 8.0 で IO スレッド アーキテクチャが強化されましたが、それを基盤としながら、マルチコアの VM でスループットを大幅に向上し、低レイテンシを実現しています。Valkey のブログの Valkey 9.0 公式リリース発表にあるように、このパフォーマンスの向上は、以下に示すアーキテクチャ強化によって実現されています。

  • パイプライン メモリのプリフェッチ: この最適化により、パイプライン処理中のメモリアクセス効率が向上し、スループットが最大 40% 高まります。

  • コピー不要のレスポンス: 大規模なリクエストにおいて内部メモリのコピーを回避することで、スループットが最大 20% 向上します。

  • SIMD の最適化: Valkey 9.0 では、BITCOUNT および HyperLogLog オペレーションに SIMD を活用しており、これらの一般的タスクのスループットが最大 200% 向上しています。(注: 上記の数値はオープンソースのベンチマークに基づいています。実際の数値は、ワークロードの種類によって異なります。)

スループットのメカニズム: パイプライン処理

Valkey のレイテンシは、ネットワークのラウンドトリップ時間(RTT)に大きく依存します。アプリケーションが次のリクエストを開始する前に各レスポンスを待機する場合、合計スループットには、このラウンドトリップ レイテンシが反映されます。パイプライン処理では、レイテンシとスループットを切り分けることでこの問題に対処しています。具体的には、1 つの接続において即時レスポンスを待つことなく複数のリクエストを送信できるようにしています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_PV4Wuae.max-1700x1700.png

ほとんどの Valkey クライアントはパイプライン処理をネイティブにサポートしています。たとえば、valkey-go のように、デベロッパーに対して「自動パイプライン処理」機能を提供し、最適化を透過的に処理するものなどがあります。

Valkey 8.0 では、バックグラウンド スレッドのメモリ プリフェッチにより、パフォーマンスが大幅に向上しました。具体的には、メインスレッドがデータを要求する前に、DRAM から CPU キャッシュにデータを移動するようハードウェアに指示します。この最適化により、メインスレッドは最小限の遅延でオペレーションを実行できるようになりましたが、それでもまだ制約がありました。パイプライン トラフィックにおいてプリフェッチの恩恵を受けるのは最初のオペレーションのみであり、後続のリクエストでは CPU キャッシュミスによるボトルネックが生じていたのです。

Valkey 9.0 では、Valkey 8.0 のアーキテクチャを基盤としてコマンド処理が再設計され、パイプライン ワークロード向けに最適化されました。具体的には、最初のオペレーションに対してのみキーをプリフェッチするのではなく、パイプライン内のすべてのオペレーションを同時にプリフェッチします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_fRHeicE.max-2000x2000.png

CPU キャッシュは通常、DRAM アクセスよりも数十倍高速であるため、一見するとわずかな改善でも、その影響は非常に大きくなります。Valkey 9.0 では、メインスレッドの CPU キャッシュ ヒットを最大化することで、全体のスループットを最大 40% 向上させています。

開発者からの新たな要望に対応

Valkey 9.0 では、パフォーマンスが向上しただけではありません。コミュニティからの多くの要望に応えて、アプリケーション ロジックとデータ マネジメントを簡素化する強力な新しいコマンドが導入されています。

ハッシュ フィールドの有効期限を個別に設定

インメモリ ストアに対してよく寄せられる要望として、キー全体ではなくハッシュ内の個々のフィールドに有効期限を設定したいというものがありました。Valkey 9.0 ではこの機能が導入され、データ ライフサイクル管理の柔軟性が大幅に向上しました。

  • 実際の例: 認証トークン、一時的な設定、長期的な設定を保存する「ユーザー セッション」ハッシュを管理する場合について考えてみましょう。HEXPIRE を使えば、temporary_session_token フィールドに 30 分の有効期限を設定し、残りのユーザー プロファイル データをそのまま保持するといったことが可能です。つまり、フィールドごとに異なる有効期間(TTL)を設定するという目的のためだけに、1 つの論理オブジェクトを複数のキーに分割する必要がなくなります。

  • 新しいコマンド: このリリースでは、HEXPIRE、HEXPIREAT、HEXPIRETIME、HPERSIST、HTTL などの各種コマンドが完全サポートされています。

地理空間の詳細指定、条件付きロジック

  • 地理空間インデックスに対するポリゴン検索: ポリゴンを指定して位置情報をクエリできるようになりました。たとえば、物流アプリケーションで、配送ゾーンを非円形で厳密に定義して(特定のエリアや工業団地など)、現在その境界内にあるすべてのアクティブなアセットをクエリするといったことができます。

この機能を使用するには、地理空間インデックスに座標を追加するだけです。

読み込んでいます...

次に、GEOSEARCH で BYPOLYGON オプションを指定します。

読み込んでいます...

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_zXxeHbk.max-700x700.png
  • 条件付き削除(DELIFEQ): このコマンドは、キーの現在の値が指定値と一致する場合にのみ、キーを削除します。これは分散ロックにおいて画期的な機能です。このコマンドにより、ワーカーは、ロックの取得時に使った一意のトークンをまだ保持している場合にのみ、安全にロックを解放できます。こうすることで、すでに期限切れとなって別のプロセスに再割り当てされたロックを誤って削除することがなくなります。以前は、このような操作は Lua スクリプトを使ってのみ可能でした。

DELIFEQ の便利さを理解するために、2 つのプロセス(プロセス A とプロセス B)がロックへの排他的アクセスを必要とする場合を考えてみましょう。

プロセス A は、次のコードを実行して、分散ロックを 30 秒間取得します。

読み込んでいます...

プロセス B が同じことを試みても、NX オプションを指定しているため、成功しません。

読み込んでいます...

プロセス A が終了したら、新しい DELIFEQ コマンドを使用して安全にロックを解除できます。

読み込んでいます...

これで、プロセス B はロックを取得できます。

読み込んでいます...

 

新しいフィルタ オプション

説明

NAME <名前>, NOT-NAME <名前>

指定した名前のクライアントを含める、または、除外する。

IDLE <秒>

指定した秒数以上アイドル状態になっているクライアントのみを含める。

FLAGS <フラグ>, NOT-FLAGS <フラグ>

さまざまなフラグ(プライマリ接続、レプリカ接続など)に基づいてクライアントを含める、または、除外する。

LIB-NAME <名前>, LIB-VER <バージョン>, NOT-LIB-NAME <名前>, NOT-LIB-VER <バージョン>

指定したライブラリ バージョンまたはライブラリ名に一致するクライアントを含める、または、除外する(たとえば、valkey-py のバージョン 6 のみを含める)。

DB <データベース>、NOT-DB <データベース>

現在選択されているデータベースに基づいて、クライアントを含める、または、除外する。

CAPA <フラグ>、NOT-CAPA <フラグ>

クライアントが宣言した機能(リダイレクトをサポートするかどうかなど)に基づいて、クライアントを含める、または、除外する。

IP <ip>, NOT-IP <ip>

クライアントを IP アドレスに基づいて含める、または、除外する。

NOT-ID <id>, NOT-TYPE <タイプ>, NOT-ADDR <アドレス>, NOT-LADDR <ローカル アドレス>, NOT-USER <ユーザー名>

既存のフィルタの多くが、除外オプションに対応。

拡張された CLIENT LIST 機能は、Memorystore for Valkey でそのまま使用できます。

エンタープライズ対応の機能

今回のリリースでは、クラスタ環境のデータベース構成も導入されています。これにより、Blue/Green キャッシュ パターンなどの複雑なユースケースにも容易に対応できるようになります。複数のサービスで番号付きデータベースを利用できるため、データを効率的にパーティショニングして、論理的に名前空間を分けることが可能となります。クラスタモードで、キースペースの名前空間に最大 100 個の番号付きデータベースを構成できます。

構成例: Google Cloud CLI でインスタンスを作成するときに、データベースの数を指定できます。

読み込んでいます...

クラスタ環境のデータベース構成では、単一のスケーラブルなクラスタ インスタンス内で、さまざまなサービスや環境に対してデータを効率的にパーティショニングできます。これにより、クラスタの大規模なスケールを活用しながら、論理的組織に基づき複数のデータベースを使用することが可能となります。この機能を使えば、現在、クラスタ化していないレガシーの Redis インスタンスの制約を受けているお客様の多くが、複雑なアプリケーションの再設計を行うことなく、マルチデータベース構造に依存するワークロードを簡単にモダナイズできるようになります。

シームレスなアップグレード

Memorystore for Valkey をすでにご利用のお客様は、ダウンタイムなしの簡単なインプレース アップグレードで、これらの新機能をすぐに利用できます。このたび、クラスタが有効または無効の両方のインスタンスで Valkey 9.0 が使用可能になったことにより、最新エンジンへのスムーズな移行が実現します。

今後の展望

Valkey 9.0一般提供は、オープンソース データベースの進化における重要なマイルストーンです。しかし、この取り組みはまだ始まったばかりです。Google はすでに、次のイノベーションの波に向けて鋭意取り組み中であり、Google Cloud Next 2026 で Valkey エコシステムのさらなる強化について発表する予定です。

さっそく構築を始める

Memorystore for Valkey 9.0 のパワーを体験するには、実際に試してみるのが一番です。まずはドキュメントをご覧になるか、さっそく 初めての Valkey インスタンスをデプロイしてみましょう。セルフマネージドの Redis に囚われることなく、Memorystore for Valkey のシンプルさとスピードを今すぐ体験し、アプリケーションにご活用ください。そうすることで、真に重要なイノベーションや、ビジネスにおける重要アプリケーションの開発に専念することが可能となります。

- Google、シニア プロダクト マネージャー、Ankit Sud

- ソフトウェア エンジニア、Jacob Murphy

投稿先