Google Cloud: Memorystore for Redis vs. Valkey - 今選ぶべきインメモリデータベースは?
メディア統括本部 サービスリライアビリティグループ(SRG)の小林(@berlinbytes)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、Google Cloud が提供するマネージドインメモリデータベースサービスを比較検討してみた記事になります。
はじめに比較対象サービス検証環境と方法負荷をかける側のインスタンス負荷をかけられる側のインスタンステスト方法検証結果パフォーマンス価格考察パフォーマンスについてユースケースとコストパフォーマンスValkey のメリットと懸念点まとめ終わりに
はじめに
Redis は、高速なインメモリキーバリューストアとして、キャッシュやメッセージングなど、さまざまな用途で広く利用されています。
その Redis ですが、2025年5月1日にバージョン8から「Redis Open Source」という名称で、オープンソースプロジェクトとして再始動されるという大きな動きがありました。
Redis と Valkey が今後それぞれどのように発展していくのかはまだ不透明な部分もありますが、開発者にとっては選択肢が増えたとも言えます。
この記事では、Google Cloud が提供するマネージドインメモリデータベースサービスである Memorystore に注目し、
- Memorystore for Redis
- Memorystore for Redis Cluster
- Memorystore for Valkey
この3つのサービスを比較検証します。
比較対象サービス
Memorystore for Redis は、スタンドアロン構成の Redis を提供するサービスです。
可用性や容量を細かく設定できる柔軟性がありますが、シャード構成は取れず、永続化オプションも限定的です。
Memorystore for Redis Cluster は、Redis Cluster モードに対応したサービスで、データを複数のシャードに分散することで高いスケーラビリティと可用性を実現します。
Memorystore for Valkey は、Valkey をエンジンとして利用するサービスで、Redis Cluster と同様にクラスタモードをサポートしつつ、Valkey の特徴を活かした運用が可能です。
また、クラスタモードを無効にしてスタンドアロン構成としても利用できる柔軟性も持ち合わせています。
これらのサービスは、インスタンスタイプや料金体系にも違いがあり、純粋な比較が難しい側面もありますが、
今回はできる限り条件を揃えるため、3つのサービスともに1シャード、1レプリカセットの構成で比較を行いました。
なお、本記事執筆時点で Memorystore for Redis Cluster の Redis エンジンバージョンは 7.0 で固定されているため、その点を考慮して結果をご覧ください。
検証環境と方法
負荷をかける側のインスタンス
負荷生成には、以下の Google Compute Engine インスタンスを使用しました。
インスタンスタイプ | c4a-standard-2 |
CPU | 2core |
メモリ | 8.0 GB |
負荷をかけられる側のインスタンス
比較対象の Memorystore インスタンスの構成は以下の通りです。
サービス | Memorystore for Redis | Memorystore for Redis Cluster | Memorystore for Valkey |
インスタンスタイプ | Standard Tier | redis-standard-small | standard-small |
CPU | 2 I/O Threads | 2 vCPU | 2 vCPU |
メモリ | 5 GiB | 6.5 GB(5.2 GB 書き込み可) | 6.5 GB(5.2 GB 書き込み可) |
シャード数 | 1 | 1 | 1 |
レプリカ数 | 1 | 1 | 1 |
エンジン | Redis 7.2 | Redis 7.0 | Valkey 7.2 |
テスト方法
負荷試験には、Redis Labs (現 Redis Ltd.) が開発したベンチマークツールである を使用しました。
テスト手順は以下の通りです。
- 各 Redis/Valkey インスタンスに、メモリ容量の約60%までデータを投入します。これは、実際の運用環境に近い状態での性能を測定するためです。
- 負荷をかける側のインスタンス(同一リージョンに配置)から を実行し、各 Memorystore インスタンスに対して負荷をかけます。
- 以下の3種類のワークロードでベンチマークを実施します。
- Write Only (書き込みのみ)
- Read Only (読み込みのみ)
- Read:Write = 1:1 (読み書き均等)
- 各ワークロードについて、3分間のテストを5セット実施し、その平均値を取得します。
- 比較指標として、1秒あたりの操作数 (Ops/sec) と P99 レイテンシ (99パーセンタイルレイテンシ) を用います。 テスト手順については、前回の記事 も参考にしてください。
検証結果
パフォーマンス
各サービス、各ワークロードにおける1秒あたりの操作数 (Ops/sec) と P99 レイテンシの結果は以下の通りです。


価格
今回の比較構成における、各サービスのオンデマンド料金(東京リージョン: )は以下の通りです。
サービス | Memorystore for Redis | Memorystore for Redis Cluster | Memorystore for Valkey |
インスタンスタイプ | スタンダードティア(5GB) | redis-highmem-medium | highmem-medium |
シャード数 | 1 | 1 | 1 |
レプリカ数 | 1 | 1 | 1 |
オンデマンド価格(時間) | $0.4 | $0.366 | $0.366 |
オンデマンド価格(月額) | $292.00 | $267.18 | $267.18 |
リージョン | asia-northeast1 | asia-northeast1 | asia-northeast1 |
また、検証用途など、より小規模なスペックで構成した場合の料金例は以下の通りです。
サービス | Memorystore for Redis | Memorystore for Redis Cluster | Memorystore for Valkey |
インスタンスタイプ | Basic Tier(1GB) | redis-shared-core-nano | shared-core-nano |
シャード数 | 1 | 1 | 1 |
レプリカ数 | 0 | 0 | 0 |
オンデマンド価格(時間) | $0.065 | $0.0408 | $0.0408 |
オンデマンド価格(月額) | $47.45 | $29.78 | $29.78 |
リージョン | asia-northeast1 | asia-northeast1 | asia-northeast1 |
上記のインスタンス料金に加えて、以下の料金が発生する可能性があります。
- Memorystore for Redis
- ネットワーク料金 (ゾーンやリージョンを跨いだ通信)
- Memorystore for Redis Cluster / Valkey
- AOF persistence 料金 (AOF永続化を行なっている場合)
- ネットワーク料金 (ゾーンやリージョンを跨いだ通信)
- バックアップ料金 (バックアップを使用する場合)
考察
パフォーマンスについて
Memorystore for Redis (スタンドアロン) と Memorystore for Redis Cluster を比較すると、Redis Cluster の方が大幅にパフォーマンスが向上していることが分かります。
特に書き込み性能 (Write Only) では約2.6倍、読み込み性能 (Read Only) では約1.8倍の差が見られました。
エンジンバージョンが異なるものの、この差は主に Redis Cluster がデータを複数のノード(今回は1シャードですが、アーキテクチャの違い)に分散して処理することで、高いスループットを実現しているためと考えられます。
次に、Memorystore for Redis Cluster (Redis 7.0) と Memorystore for Valkey (Valkey 7.2) を比較すると、Valkey Cluster の方がさらに5%〜10%程度高いパフォーマンスを示しています。
これは、Valkey が Redis 7.2.4 をベースに最適化が加えられていること、またエンジンバージョンが新しいことによる影響も考えられます。
レイテンシに関しても、Redis Cluster および Valkey Cluster が、スタンドアロンの Redis よりも優れている結果となりました。
P99 レイテンシから、特に Read Only や Read:Write のワークロードにおいて、Cluster 系サービスの方が大幅に低い値を示しており、安定した応答性能が期待できます。
これもクラスタリングによる負荷分散や、Valkey の最適化による効果と考えられます。
ユースケースとコストパフォーマンス
検証結果を踏まえると、小規模なトラフィックやシンプルなキャッシュ用途であれば、Memorystore for Redis でも十分な性能を発揮する場合があります。
特に読み取り処理がメインで、書き込み頻度が低い場合は、最大5つまで追加可能なリードレプリカによってスケールアウトできるため、柔軟な対応が可能です。
しかし、サービスの成長に伴い書き込み負荷の増加が見込まれる場合や、より高いスループットと低レイテンシが求められる場合には、Memorystore for Redis Cluster や Memorystore for Valkey が有力な選択肢となります。
これらのサービスは、レプリカの増減に加えてシャード数を増減させることで、より柔軟かつ大幅なスケールアウトが可能です。
シャードを増やせるということは、メンテナンス時などのダウンタイムを最小限に抑えることにも繋がります。
コスト面では、今回比較した同程度のスペック(5GBメモリ、1シャード、1レプリカ)の場合、Memorystore for Redis Cluster および Valkey の方が、Memorystore for Redis よりも若干安価でした。
それでいて処理能力は大幅に高いため、パフォーマンスとコストのバランスを考えると、新規で導入する場合には Cluster 系サービス、特に Valkey の方が魅力的に映ります。
この結果から、従来の Memorystore for Redis を積極的に選択するメリットは薄れてきているように感じられます。
Valkey のメリットと懸念点
Memorystore for Valkey は、パフォーマンス面で優位性を示しただけでなく、Redis からの移行パスとしても注目できます。
現在、Cluster モードではない Redis を利用しており、アプリケーション側の改修なしに Cluster モードへの移行が難しい場合でも、Memorystore for Valkey ではクラスタモードを無効にしてスタンドアロン構成として利用できます。
この場合、シャード構成は組めず、レプリカ数も最大2つまでという制約はありますが、既存のアプリケーションへの影響を最小限に抑えつつ、低コストで Valkey への移行を試せる点は大きなメリットです。
一方、Valkey のデメリットとしては、冒頭で述べたように Redis が「Redis Open Source」として再始動したことによる影響がまだ不透明である点が挙げられます。
今後、Redis Open Source と Valkey がそれぞれどのように開発が進み、コミュニティがどう動いていくのかは注視が必要です。
この不確実性が解消されるまでは、Valkey を採用する場合でも、Redis OSS 7.2 との完全互換を謳っている Valkey 7.2 系に留めておくのも手かもしれません。
まとめ
今回の検証結果としては、高いパフォーマンスとスケーラビリティを求めるのであれば、Memorystore for Redis Cluster または Memorystore for Valkey が有力な選択肢となります。
特に Memorystore for Valkey は、Redis 7.2 からの移行パスを持ちつつ、より優れたパフォーマンスと柔軟な構成オプションを提供しており、コスト面でも競争力があります。
ただし、Redis と Valkey のエコシステムの今後の動向には注意が必要です。
Redis がオープンソースとして再始動したことで、将来的にどちらのプロジェクトが主流となるか、あるいは共存していくのかはまだ見えません。
現時点での推奨としては、
- 既存のスタンドアロン Redis からの移行で、アプリケーション改修を最小限にしたい場合は、Memorystore for Valkey (クラスタモード無効)
- 新規構築や、より高いパフォーマンス・スケーラビリティを求める場合は、Memorystore for Valkey (クラスタモード有効)
- Redis エコシステムの動向をより慎重に見極めたい場合は、実績のある Memorystore for Redis Cluster (エンジンバージョンが古い点には留意)
このような感じになるかと思います。
終わりに
SRG では一緒に働く仲間を募集しています。
ご興味ありましたらぜひこちらからご連絡ください。