こんにちは、Redis Stack――主要Redisモジュールを統合したリアルタイム開発向け新製品

本日、私たちは「Redis Stack」の提供開始をお知らせできることを大変嬉しく思います。Redis Stackは、最先端のRedisモジュール群の機能を1つの製品に統合し、開発者がRedisならではの高速性と安定性を活かしながら、モダンなリアルタイムアプリケーションを手軽に構築できるようにするものです。
プロローグ
Redisでは、応答性が高く低レイテンシなアプリケーションやサービスへの普遍的なニーズに応えるべく、リアルタイムデータレイヤーの構築に取り組んでいます。
リアルタイム体験を提供するアプリケーションを作るには、単純なオブジェクト取得から検索、複雑な集計処理まで、あらゆるリクエストに可能な限り高速に――理想的には1ミリ秒未満で――応答できるデータベースが必要です。理由はシンプルです。典型的なアプリケーションでは、ユーザー操作のたびにデータベースへの呼び出しが何度も発生し、それが大きなオーバーヘッドにつながります。さらにエンドユーザーとアプリ間のネットワーク往復遅延も加わるため、データベース側でわずか1ミリ秒を無駄にするだけでも、リアルタイムのユーザー体験の実現は一段と難しくなるのです。
この原則は、キー/バリュー、ドキュメント、ストリーム、グラフ、時系列、確率的データ構造など、データモデルの種類に関わらず成り立ちます。
これまでの取り組み

DB-Enginesの過去24か月のトレンドが示す通り、最も急速に成長しているデータモデルは、キーバリュー、検索、ドキュメント、グラフ、時系列です。同時に、リレーショナルデータベースでアプリケーションをモデリングする開発者は年々減少しています。
そこで私たちはここ4年間、Redisのコアとなるキー/バリュー型データ構造機能を拡張する専用データエンジンを多数開発してきました。対象となるのは、検索、ドキュメント、グラフ、時系列、確率的データ構造といったモダンなデータモデルとデータ処理機能です。
これらのエンジンはRedisモジュールとして実装されており、オープンソース版Redisと同じ設計思想――インメモリアーキテクチャ、C言語またはRustで書かれた効率的なコードベース――に基づいてゼロから構築されています。これにより、開発者は幅広いデータワークロードを最小限のレイテンシで実行できます。
コミュニティや顧客からのフィードバックを受けて、私たちは主要Redisモジュールとその機能、そしてそれらを支えるドキュメントやクライアントの開発者体験を簡素化する必要があると気づきました。開発者がRedisを使い始めた瞬間から最大限の生産性を発揮できるようにしたい――それがRedis Stack誕生の理由です。
Redis Stackとは
Redis Stackは、主要なRedisモジュールを1つの製品に統合したもので、Redisベースの検索、ドキュメント、グラフ、時系列機能をすぐに使い始められます。
Redis Stackは、次の3つのコンポーネントで構成されるスイートです。
- Redis Stack Server:オープンソース版Redisに、RediSearch、RedisJSON、RedisGraph、RedisTimeSeries、RedisBloomを組み合わせたもの
- RedisInsight:Redisデータの可視化と最適化を行う強力なツール。リアルタイムアプリケーション開発をかつてないほど簡単で楽しいものにします
- Redis Stack クライアントSDK:Java、JavaScript、Python向けの主要公式Redisクライアントを含みます。これらのクライアントには、数行のコードだけで高い生産性を実現する開発者フレンドリーな抽象化レイヤーを備えた、新しいオブジェクトマッピングライブラリ群も含まれています。.NET、Node.js、Java、Python向けの「Redis OM」として知られるこれらのライブラリにより、Spring、ASP.NET Core、FastAPI、Expressなどの主要アプリケーションフレームワークとの統合もかつてないほど容易になりました。

Redis Stackの始め方
Redis StackはRedis 6.2向けに正式提供(GA)されており、Redis 7.0向けのリリース候補版(RC)も用意しています。
Redis Stackをすぐに始める方法はいくつもあります。
- redis.ioから直接ダウンロードする
- お好みのパッケージマネージャーでインストールするか、Redis StackのDockerイメージを起動する
- Redis Enterprise Cloudで無料のデータベースを作成するか、固定料金プランを利用してクラウドにデプロイする。セルフマネージドやオンプレミスでの運用向けに、Redis Enterprise SoftwareでもRedis Stackの機能を提供しています
Redis Stack Serverを起動して稼働させたら、すぐにRedisInsightを使ってRedisデータの可視化、分析、最適化が行えます。RedisInsightには、Redis Stackのさまざまなユースケースを順を追って学べるガイドシリーズも付属しています。
クライアント側では、Jedis(Java)、redis-py(Python)、node-redis(JavaScript)といった主要Redisクライアントに加え、新しいオブジェクトマッピングライブラリ(redis-om-spring、redis-om-python、redis-om-node、redis-om-dotnet)でもRedis Stackをサポートしています。
サポート対象の各言語向けにサンプルリポジトリを公開しているので、クローンして作成したばかりのデータベースでの開発をすぐに始められます。
RedisとRedis Stackの関係
Redis Stackが実現するリアルタイムアプリケーションの可能性に、私たちは大きな期待を寄せています。ただし、はっきりさせておきたいのは、Redis StackはRedisの置き換えではないという点です。
Redisは中核となるオープンソース技術であり、その継続的な開発への注力は変わりません。オープンソース版Redisは、いつでもダウンロード、ビルド、インストール、実行できます。
Redis Stackの利用を始めたくなったら、Redisのレプリケーション機構を使うか、RDBファイルやAOFファイルを読み込むことで、簡単にデータを移行できます。

ライセンスについて
Redis Stackを構成するすべてのコードベースは、誰でも自由に利用できます。
ただし、Redis Stackのライセンスモデルについては明確にしておきます。
- Redis Stack Serverは、Redis Source Available License(RSAL)のもとで提供されます(従来のRedisモジュールと同じライセンスです)
- RedisInsightは、既存のServer Side Public License(SSPL)のもとで提供されます
- 主要Redisクライアントおよびオブジェクトマッピングライブラリは、オープンソースのMITライセンスでリリースされています

まとめ
私たちは、Redisをオープンソースプロジェクトとして開発し続け、世界最大級の開発者コミュニティを支援し、増え続けるアクティブなコントリビューターの皆さまと協働していくことに尽力します。
今後もRedis Stackに機能を追加し、開発者が完全にRedisベースのモダンなリアルタイムアプリケーションを迅速かつ簡単に開発できるよう支援していきます。
Redis Stackとその機能について詳しく知りたい方は、RedisDaysイベントで配信されたRedis Stackの詳細解説セッションをオンデマンドでご視聴ください。
また、よくある質問への回答をFAQセクションにまとめました。
最後に、Redis Stackへのフィードバックをお待ちしています。Redisメーリングリストにお送りいただくか、Redis Discordサーバーに参加して、ぜひご意見をお聞かせください。
FAQ
Redis Stackのコンポーネントは何ですか?
Redis Stackは、主要Redisモジュールを含むオープンソース版Redis(Redis Stack Server)とRedisInsightを1つのパッケージにまとめたものです。
Redis Stack Serverの初回リリースには、RedisJSON、RediSearch、RedisGraph、RedisTimeSeries、RedisBloomの5つのモジュールが含まれています。
Redis Stackは公式Redisクライアントおよびオブジェクトマッピングライブラリでサポートされており、Spring、ASP.NET Core、Express、FastAPIなど複数のアプリケーションフレームワークから、Redis Stackの高度な機能を簡単に利用できます。
Redis Stackは開発者にどんな機能をもたらしますか?
Redis Stackを使うと、開発者は次のことが可能になります。
- Redisデータのインデックス化とクエリ、集計処理、全文検索の実行
- 高度なベクトル類似性検索(KNN)の実行
- ネストしたJSONドキュメントの効率的な保存と操作
- プロパティグラフとしての関係の構築とモデリング
- 時系列データの保存、クエリ、集計
- 高速で省スペース・省計算資源の確率的データ構造の活用
- RedisInsightによるRedisデータの簡単な可視化、デバッグ、分析
今後、Redis Stackに機能は追加されますか?
以下の条件を満たす場合に、新しい機能やモジュールの追加を検討します。
- コミュニティからの需要があること
- 新しい機能がRedisのビジョンに合致していること
- Redis Inc.のエンジニアリングチームが正式にサポートできること
最初のRedis StackリリースにRedisGearsが含まれないのはなぜですか?
RedisGearsは、データベーストリガー、ストリーム処理、分散関数、完全なプログラマビリティをRedisに追加するモジュールです。
JavaScriptサポートがGA(一般提供)になり次第、今年後半にRedis Stackへ追加する予定です。
Redis Stackを無料でセルフマネージドできますか?
はい、可能です!
Redisのオブジェクトマッピングライブラリとは何ですか?
Redisのオブジェクトマッピングライブラリは、SQLデータベースにおけるORMのように、RedisコマンドAPIの上に抽象化レイヤーを提供します。ここで、コアのRedisクライアントライブラリとオブジェクトマッピングライブラリを区別しておきましょう。
コアRedisクライアントライブラリの役割:
- Redisプロトコル(RESPなど)の実装
- 接続管理(TCPなど)、再接続、サーバー検出など
- 実行ロジックの管理(スレッド、非同期IOなど)
- 任意のRedisコマンドを実行するためのAPIの公開
- 各言語の慣用的な形式でのRedisコマンドの提供
- 接続文字列経由での任意のRedisデプロイへの接続
オブジェクトマッピングライブラリが提供する追加の利点:
- 一般的なRedisユースケースを最小限のコード行数で実装可能。現在はドメインモデリングと流暢な(Fluent)クエリAPIを提供しており、将来的にはキャッシュ、セッションストア、レート制限、リーダーボード、重複排除など他の一般的なユースケースにも対応予定
- Redis Stackが提供する機能への高レベルAPIの公開
- 基盤となるRedisコマンドを意識せずにRedisのメリットを享受可能
- 主要アプリケーションフレームワーク(Spring、ASP.NET Core、FastAPI、Expressなど)との統合
これらのオブジェクトマッピングライブラリは、必ず1つ以上のコアRedisライブラリに依存します。
.NET向けのRedis Stackクライアントはありますか?
現在、.NET開発者に推奨されるクライアントはStackExchange.Redisですが、これはRedis Inc.による正式サポートの対象外です。RediSearch用のNRediSearch、RedisGraph用のNRedisGraph、RedisTimeSeries用のNRedisTimeSeriesでクライアントを拡張できます。また、StackExchange.Redisをベースに構築されたredis-om-dotnetライブラリを利用することも可能です。
Redis Enterprise CloudでRedisInsightは使えますか?
RedisInsightはまだRedis Enterprise Cloud上では提供されていません。ただし、RedisInsightアプリケーションからクラウドデータベースに接続することは可能です。今年後半にはクラウドへのRedisInsight搭載を計画しています。
Redis StackのデータベースをRedis Enterprise Cloudへ簡単に移行できますか?
はい。「Replica-Of」機能を利用すれば、ダウンタイムなしでフルマネージドのクラウドサービスへデータベースを移行できます。
-
RedisDays San Francisco 2022 開催レポート:開発者体験を変えるRedisの最新イノベーション
RedisDays San Franciscoは、Redis開発者コミュニティに捧げられた1日限りのイベントです。ゲストスピーカーたちは、Redisのリアルタイムデータイノベーションが、開発者体験をシンプルにすることで、いかにアプリ開発を高速化できるかを紹介しました。新製品の発表、製品アップデート、ステップバイステップのウォークスルーなど、アプリ開発をより簡単かつ迅速に行うために必要なツールを開発者コミュニティに届けることに特化したイベントとなりました。それでは早速、内容を見ていきましょう。 Redis Stack 登場 「リアルタイム対応は、今や消費者と企業の双方が当たり前に期待すること
-
Fastly ComputeでUpstash Redisを活用する方法
この記事では古いバージョンのFastly CLIを使用しています。最新の手順については、こちらの記事をご確認ください。 この記事では、Fastly Compute@Edge上で動作するシンプルなアプリケーションを作成します。このアプリケーションはUpstash Redisにアクセスし、ページビュー数を記録します。 モチベーション エッジコンピューティングは、近年最も注目されているトレンドのひとつです。CloudflareやFastlyといったCDNサービスは、ユーザーが自社のエッジインフラストラクチャ上でアプリケーションを実行できるようにしました。これにより、開発者はグローバルに分散した高