はじめに
2024年3月、Redis Inc. がライセンスを変更したことで、インメモリデータストアの世界に大きな転機が訪れました。これを受けて誕生したのが Valkey です。AWS、Google Cloud、Oracle などの大手企業が支援し、Linux Foundation のもとで開発が進められています。
本記事では、Redis と Valkey の違いをライセンス・パフォーマンス・機能・エコシステムの観点から比較し、どちらを選ぶべきかの判断材料を提供します。
Valkey とは何か
Valkey は Redis 7.2.4 をフォーク(派生)して生まれたオープンソースのインメモリキーバリューストアです。Redis と同じデータ構造・コマンド・プロトコルをサポートしており、既存の Redis クライアントやアプリケーションコードを変更なしで動作させることができます。
2024年9月には初のメジャーリリースである Valkey 8.0 が公開され、Redis のコードベースから独自の進化を始めました。
ライセンスの違い
これが両者を分けた最も大きなポイントです。
| 項目 | Redis(7.4以降) | Valkey |
|---|---|---|
| ライセンス | RSALv2 / SSPLv1(デュアル)※Redis 8.0以降はAGPLv3も選択可 | BSD 3-Clause |
| 商用利用 | マネージドサービスとしての提供に制限あり | 制限なし |
| クラウドベンダーの利用 | ライセンス上の制約が発生しうる | 自由に利用可能 |
| ガバナンス | Redis Inc. が主導 | Linux Foundation 傘下、コミュニティ主導 |
Redis は 2024年にBSDライセンスから RSALv2/SSPLv1 へ変更しました。その後、2025年5月に Redis 8.0 から OSI 承認の AGPLv3 も選択肢として追加されましたが、クラウドベンダーにとっての制約が完全になくなったわけではありません。
一方 Valkey は BSD 3-Clause ライセンスを維持しており、商用利用・再配布・改変が自由です。AWS ElastiCache や Google Cloud Memorystore などのマネージドサービスが Valkey を採用している背景には、このライセンスの違いがあります。
アーキテクチャとパフォーマンスの違い
スレッディングモデル
Redis も Valkey もコマンド処理自体はシングルスレッドで、アトミック性を保っています。しかし I/O 処理のマルチスレッド化において、両者のアプローチは異なります。
Redis(8.0): Redis 6.0 からマルチスレッド I/O を導入していましたが、8.0 でさらに最適化が進みました。
Valkey(8.0): 新しい非同期 I/O スレッドアーキテクチャを導入しました。クライアントからのコマンド受信・レスポンス送信を複数スレッドで並行処理し、リアルタイムの負荷に応じて I/O タスクを複数コアにインテリジェントに分散します。
ベンチマーク結果
AWS c7g.4xlarge(Graviton3, 16 vCPU)環境でのベンチマークでは、以下のような結果が報告されています。
| 指標 | Valkey 7.2 | Valkey 8.0 | 改善率 |
|---|---|---|---|
| スループット(RPS) | 約36万 | 約119万 | 約230%向上 |
また、AWS Graviton インスタンスでの Valkey 8.1 vs Redis 8.0 の比較では、SET 操作で 37%、GET 操作で 16% Valkey の方が高いスループットを記録したという報告もあります。
RDMA サポート(実験的)
Valkey 8.0 では RDMA(Remote Direct Memory Access) の実験的サポートが導入されました。RDMA はネットワーク上のコンピュータ間で CPU やOSを介さずにメモリ間で直接データ交換を行う技術で、スループットが最大 約275%向上 するとされています。Redis にはこの機能はありません。
メモリ効率
Valkey 8.0 では以下のメモリ最適化が行われています。
- スロットごとのディクショナリ:クラスタモードでスロットからキーへのマッピングメタデータが不要に
- キーのディクショナリエントリへの埋め込み:メモリルックアップの削減、キーあたり8バイトのオーバーヘッド削減
- 結果として、同じメモリ量で 最大20%多くのキー を格納可能
機能面の比較
| 機能 | Redis | Valkey |
|---|---|---|
| 基本データ構造(String, Hash, List, Set, Sorted Set, Stream 等) | ✅ | ✅ |
| Pub/Sub | ✅ | ✅ |
| Lua スクリプティング | ✅ | ✅ |
| クラスタリング(最大1000ノード) | ✅ | ✅ |
| レプリケーション | ✅ | ✅ |
| Redis Query Engine(検索・セカンダリインデックス) | ✅ | ❌ |
| ベクトル検索 | ✅ | ❌ |
| RedisJSON | ✅ | ❌ |
| RedisTimeSeries | ✅ | ❌ |
| RDMA サポート | ❌ | ✅(実験的) |
| マルチスレッド I/O の高度な最適化 | ✅(8.0で改善) | ✅(8.0で大幅改善) |
Redis が優位な点は、Redis Stack モジュール(Query Engine、JSON、TimeSeries、ベクトル検索など)のエコシステムです。これらは Redis 独自の拡張機能であり、Valkey にはフォーク時点で含まれていません。AI/ML ユースケースで RAG(Retrieval-Augmented Generation)やベクトル検索を利用したい場合、Redis の方が成熟したソリューションを提供しています。
クラウドサービスでの対応状況
| クラウド | Redis | Valkey |
|---|---|---|
| AWS ElastiCache | ✅ | ✅(約20%コスト削減) |
| AWS MemoryDB | ✅ | ✅ |
| Google Cloud Memorystore | ✅ | ✅ |
| Oracle Cloud | — | ✅ |
AWS ElastiCache では 2025年から Valkey エンジンを選択可能になっており、同スペックの Redis ノードと比較して 約20%のコスト削減 が見込めます。
サポート体制
Redis: Redis Inc. によるエンタープライズサポート(24/7対応、SLA保証)、Redis University、豊富なドキュメントが利用可能です。
Valkey: コミュニティベースのサポート(GitHub、メーリングリスト)が中心です。エンタープライズ向けの公式サポートはありませんが、Percona などのサードパーティがサポートサービスを提供し始めています。
どちらを選ぶべきか
Valkey が適しているケース
- オープンソースライセンスを重視する場合(BSD で自由に商用利用したい)
- クラウドマネージドサービスを利用しており、コスト削減を狙いたい場合
- Redis Stack モジュール(JSON, Search, TimeSeries 等)を使っていない場合
- 高スループットが求められるキャッシュ・セッションストア用途
- Redis 6 の EOL(2026年1月31日)に伴い、オープンソースのまま移行先を探している場合
Redis が適しているケース
- Redis Stack モジュール(ベクトル検索、JSON、TimeSeries 等)に依存している場合
- エンタープライズサポート(SLA保証付き)が必要な場合
- Redis Query Engine を使った高度な検索・インデキシングが必要な場合
- 既に Redis Enterprise を利用しており、移行コストが見合わない場合
移行時の注意点
Valkey は Redis のドロップイン置換(既存のクライアント・設定をそのまま利用可能)として設計されていますが、以下の点には注意が必要です。
- Redis Stack モジュールは含まれない: RediSearch、RedisJSON、RedisGraph を使っている場合は、代替手段の検討またはリエンジニアリングが必要です
- バージョンの対応関係: Valkey 8.0 は Redis 7.2 ベースです。Redis 7.4 以降で追加された機能は Valkey にはありません
- 動作検証は必須: 基本的な互換性は高いものの、本番同等の環境で事前にテストすることを推奨します
- クライアントライブラリの対応: 主要なクライアント(redis-py, Jedis, node-redis, Go-Redis 等)は Valkey でも動作しますが、長期的な互換性の保証は各ライブラリのメンテナンス方針に依存します
まとめ
Redis と Valkey は同じ起源を持ちながら、今後ますます異なるソフトウェアへと進化していきます。ライセンスの自由度とコスト削減を重視するなら Valkey、エンタープライズ機能とエコシステムの成熟度を重視するなら Redis という選択になるでしょう。
どちらを選ぶにしても、まずは自分のユースケースで必要な機能を洗い出し、ライセンスの影響を評価した上で判断することが大切です。