こんにちは、Redisスタック
本日、RedisStackを発表できることに興奮しています。 Redis Stackは、主要なRedisモジュールの機能を単一の製品に統合し、開発者がRedisの速度と安定性を備えた最新のリアルタイムアプリケーションを簡単に構築できるようにします。
プロローグ
Redisでは、応答性が高く、低レイテンシのアプリケーションとサービスに対する世界的な需要を満たすために、リアルタイムのデータレイヤーを構築しています。
リアルタイムのエクスペリエンスを提供するアプリケーションを構築するには、単純なオブジェクトの取得、検索、複雑な集計など、あらゆるリクエストを処理できるデータベースが必要です。応答時間は、できれば1ミリ秒未満です。理論的根拠は単純です。一般的なアプリケーションでは、すべてのユーザーインタラクションがデータベースへの複数の呼び出しを生成し、その結果、かなりのオーバーヘッドが発生する可能性があります。エンドユーザーとアプリ間のネットワークのラウンドトリップレイテンシーを追加すると、データベースで1ミリ秒余分に費やされるたびに、リアルタイムのエンドユーザーエクスペリエンスを提供することがより困難になります。
これは、キー/値、ドキュメント、ストリーム、グラフ、時系列、確率的データ構造など、データモデルに関係なく当てはまります。
これまでに何をしましたか?
DB-Enginesでの過去24か月の傾向が明らかにしているように、最も急速に成長しているデータモデルは、Key-Value、検索、ドキュメント、グラフ、および時系列です。この傾向は、リレーショナルデータベースを使用してアプリケーションをモデル化することを選択する開発者がますます少なくなっていることも示しています。
結局のところ、私たちは過去4年間、Redisのコアキー/値データ構造機能を最新のデータモデルと検索、ドキュメント、グラフ、時系列などのデータ処理機能で拡張するいくつかの専用データエンジンを構築してきました。 、および確率的データ構造。
Redisモジュールとして実装されたこれらのエンジンは、オープンソースのRedisと同じ設計原則を使用してゼロから構築されており、インメモリアーキテクチャと、CまたはRustで記述された効率的なコードベースにより、開発者はさまざまなデータを実行できます。可能な限り最小のレイテンシでワークロード。
コミュニティと顧客の話を聞いた後、主要なRedisモジュールとそれらが提供する機能、およびそれらの機能をサポートするドキュメントとクライアントの開発者エクスペリエンスを簡素化する必要があることに気付きました。私たちは、開発者がRedisを使い始めた瞬間から完全に生産的になるのを支援したいと考えていました。
これが、RedisStackを作成した理由です。
Redisスタック
Redis Stackは、主要なRedisモジュールを単一の製品に統合します。これにより、Redisベースの検索、ドキュメント、グラフ、時系列機能を使用して簡単に構築を開始できます。
Redis Stackは、次の3つのコンポーネントのスイートです。
- Redisスタックサーバー オープンソースのRedisをRediSearch、RedisJSON、RedisGraph、RedisTimeSeries、RedisBloomと組み合わせます
- RedisInsight は、Redisデータを視覚化および最適化するための強力なツールであり、リアルタイムのアプリケーション開発をこれまでになく簡単かつ楽しくします。
- RedisスタッククライアントSDK Java、JavaScript、Pythonの主要な公式Redisクライアントが含まれています。これらのクライアントには、わずか数行のコードで生産性を高める開発者向けの抽象化を提供するオブジェクトマッピングライブラリの新しいスイートも含まれています。 Redis OM for .NET、Node.js、Java、Pythonとして知られるこれらのライブラリを使用すると、Spring、ASP.NET Core、FastAPI、Expressなどの主要なアプリケーションフレームワークとの統合もこれまでになく簡単になります。
Redisスタックの使用を開始する
RedisStackがRedis6.2で一般提供されるようになりました。また、Redis7.0のリリース候補もあります。
RedisStackをすばやく開始するためのいくつかの方法を提供しています:
- redis.ioから直接Redisスタックをダウンロードする
- お気に入りのパッケージマネージャーを使用するか、RedisStackドッカーイメージを起動するだけでインストールできます
- Redis Enterprise Cloudに無料のデータベースを作成するか、固定プランの1つを使用して、Redisスタックをクラウドにデプロイします。また、オンプレミスで自己管理または展開するすべての人に、RedisエンタープライズソフトウェアでRedisStackの機能を提供しています。
Redis Stack Serverを起動して実行すると、RedisInsightをすぐに活用して、Redisデータを視覚化、分析、最適化できます。 RedisInsightには、RedisStackのいくつかのユースケースを紹介する一連のガイドが含まれています。
クライアント側では、いくつかの主要なRedisクライアント(Jedis(Java)、redis-py(Python)、node-redis(JavaScript))と新しいオブジェクトマッピングライブラリ(redis-om-spring)でRedisStackをサポートしています。 、redis-om-python、redis-om-node、redis-om-dotnet)。
サポートされている言語ごとにサンプルリポジトリのクローンを作成して、新しく作成したデータベースの開発を開始できます。
Redis&Redisスタック
RedisStackが可能になると信じているリアルタイムアプリケーションの世界に興奮しています。ただし、RedisStackはRedisに代わるものではないことを明確にしたいと思います。
Redisはコアのオープンソーステクノロジーであり、その継続的な開発に対する私たちの焦点は変わりません。オープンソースのRedisをダウンロード、ビルド、インストール、実行するオプションはいつでもあります。
Redis Stackを実行する準備ができたら、Redisレプリケーションメカニズムを使用するか、RDBまたはAOFファイルをロードすることでデータを簡単に移行できます。
ライセンス
Redis Stackのすべてのコードベースコンポーネントはオープンで、誰でも無料で使用できます。
ただし、RedisStackのライセンスモデルについてはまだ明確にしたいと思います。
- Redis Stack Serverは、Redis Source Available License(RSAL)(Redisモジュールで使用したものと同じライセンス)の下で提供されます
- 既存のサーバー側パブリックライセンス(SSPL)に基づいてRedisInsightを提供しています
- 主要なRedisクライアントとオブジェクトマッピングライブラリは、オープンソースのMITライセンスの下でリリースされています
まとめ
私たちは、Redisをオープンソースプロジェクトとして開発し続け、地球上で最大の開発者コミュニティの1つをサポートし、プロジェクトへの積極的な貢献者の増加に協力することに取り組んでいます。
今後もRedisStackに機能を追加して、開発者が完全にRedisに基づくリアルタイム時代の最新のアプリケーションをすばやく簡単に開発できるようにします。
Redis Stackとそれが提供する機能の詳細については、現在オンデマンドで利用できるRedisDaysイベントで提供されるRedisStackの詳細なセッションをご覧ください。
また、予想される質問への簡単な回答をまとめました–短いFAQセクション。
最後に、RedisStackに関するフィードバックをお待ちしています。 Redisメーリングリストにメモを送信するか、Redis Discordサーバーに参加して、ご意見をお聞かせください。
よくある質問
Redisスタックのコンポーネントは何ですか?
Redis Stackは、主要なRedisモジュール(Redis Stack Server)を備えたオープンソースのRedisとRedisInsightを含む単一のパッケージです。
Redis Stack Serverの初期リリースには、RedisJSON、RedisSearch、RedisGraph、RedisTimeSeries、およびRedisBloomの5つのモジュールが含まれています。
Redis Stackは、公式のRedisクライアントおよびオブジェクトマッピングライブラリによってサポートされており、開発者は、Spring、ASP.Net Core、Express、FastAPIなどのいくつかのアプリケーションフレームワークで高度なRedisStack機能を簡単に使用できます。
Redis Stackは開発者にどのような機能を提供しますか?
Redis Stackにより、開発者は次のことが可能になります:
- Redisデータのインデックス作成とクエリ、集計の実行、全文検索の実行
- 高度なベクトル類似性検索(KNN)を実行する
- ネストされたJSONドキュメントを効率的に保存および操作する
- プロパティグラフとしての関係の構築とモデル化
- 時系列データの保存、クエリ、集計
- 高速でスペースを活用し、効率的な確率的データ構造を計算します。
- RedisInsightを使用してRedisデータを簡単に視覚化、デバッグ、分析する
Redis Stackに機能を追加しますか?
次の場合は、RedisStackに新しい機能やモジュールを追加することを検討します。
- コミュニティからの需要があります
- 新機能はRedisのビジョンに準拠しています
- RedisInc.のエンジニアリングチームが正式に追加をサポートできます
RedisGearsが最初のRedisStackリリースの一部ではないのはなぜですか?
RedisGearsは、データベーストリガー、ストリーム処理、分散機能、および完全なプログラム可能性をRedisに追加します。
JavaScriptのサポートがGAになったら、今年後半にRedisGearsをRedisStackに追加します。
Redis Stackを無料で自己管理できますか?
はい、できます!
Redisオブジェクトマッピングライブラリとは何ですか?
Redisオブジェクトマッピングライブラリは、ORMがSQLデータベースに対して行うのと同じように、RedisコマンドAPIよりも高いレベルの抽象化を提供します。コアのRedisクライアントライブラリとRedisオブジェクトマッピングライブラリを区別しましょう。
コアRedisクライアントライブラリには次の責任があります:
- Redisプロトコル(RESPなど)を実装します。
- 接続(TCPなど)、再接続、サーバー検出などを管理します。
- 実行ロジック(スレッド、非同期ioなど)を管理します
- 任意のRedisコマンドを実行するためのAPIを公開する
- Redisコマンドを言語慣用的な方法で公開する
- 接続文字列を介して任意のRedisデプロイメントに接続します
オブジェクトマッピングライブラリは、追加のレバレッジを提供します:
- 開発者が一般的なRedisのユースケースを可能な限り少ないコード行で実装できるようにします。現在、これにはドメインモデリングと流暢なクエリAPIが含まれています。将来的には、キャッシュ、セッションストレージ、レート制限、リーダーボード、重複排除など、他の一般的なRedisユースケースのサポートを追加する予定です。
- Redisスタックが提供する機能の高レベルAPIを公開する
- 基盤となるRedisコマンドを公開せずにRedisのメリットを提供する
- 主要なアプリケーションフレームワーク(Spring、ASP.NET Core、FastAPI、Expressなど)と統合する
これらのオブジェクトマッピングライブラリは、常に1つ以上のコアRedisライブラリに依存しています。
Redis Stackで利用できる.NETクライアントはありますか?
現在、.NET開発者に推奨されるクライアントはStackExchangeです。これは、Redis、Incによって正式にサポートされていません。RediSearchのNRediSearch、RedisGraphのNRedisGraph、およびRedisTimeSeriesのNRedisTimeSeriesを使用してクライアントを拡張できます。 StackExchange上に構築されたredis-om-dotnetライブラリを使用することもできます。
Redis Enterprise CloudでRedisInsightを使用できますか?
RedisInsightは、RedisEnterpriseCloudではまだ利用できません。ただし、RedisInsightアプリケーションを使用してクラウドデータベースに接続することはできます。今年後半にRedisInsightをクラウドに追加する予定です。
RedisスタックデータベースをRedisEnterpriseCloudに簡単に移行できますか?
はい、Replica-Ofソリューションを活用して、ダウンタイムなしでデータベースをフルマネージドクラウドサービスに移行できます。
-
RedisDaysサンフランシスコ2022の概要
RedisDays San Franciscoは、Redis開発者コミュニティに完全に捧げられた日でした。これらのセッションでは、ゲストスピーカーが、Redisのリアルタイムデータイノベーションが、デベロッパーエクスペリエンスを簡素化することで、コミュニティがアプリをより迅速に構築するのにどのように役立っているかを紹介しました。新製品の発表、製品の更新、および段階的なウォークスルーにより、RedisDays San Franciscoは、開発者コミュニティにアプリ開発をより簡単かつ迅速にするために必要なツールを提供することを目的としていました。さっそく飛び込みましょう。 Redisスタックの紹
-
FastlyComputeでRedisを使用する
この例では、古いバージョンのFastlyCLIを使用しています。最新バージョンについては、この記事を確認してください。 この投稿では、Fastly Compute@Edgeで実行される簡単なアプリケーションを作成します。アプリケーションはUpstashRedisにアクセスして、ページビューを追跡します。 モチベーション エッジコンピューティングは、近年最もエキサイティングなトレンドの1つです。 CloudflareやFastlyなどのCDNサービスは、ユーザーがエッジインフラストラクチャでアプリケーションを実行できるようにするために開始されました。これは、開発者がグローバルに分散された高