ホーム

Topics

Redis

Redisとは
IBMのRedisソリューションの詳細はこちら AI関連の最新情報の購読を申し込む
雲、円グラフ、グラフのピクトグラムをコラージュしたイラスト
Redisとは

Redis(REmote DIctionary Server)は、主にアプリケーション・キャッシュまたは応答の速いデータベースとして使用される、オープンソースのインメモリーNoSQLキー/値ストアです。

Redis(ibm.com外部のリンク)は、データをディスクやソリッドステート・ドライブ(SSD)ではなくメモリーに保存するので、比類ない速度、信頼性、パフォーマンスを実現します。

アプリケーションが外部データ・ソースに依存している場合、特にトラフィックが増加したりアプリケーションがスケーリングしたりすると、それらのソースのレイテンシーとスループットがパフォーマンスのボトルネックを引き起こすおそれがあります。このような場合にパフォーマンスを向上させる1つの方法は、アプリケーションに物理的に近いメモリー内にデータを保持して操作することです。Redisは、このタスクに合わせて構築されており、すべてのデータをメモリー内に保存し、データの読み取りまたは書き込み時に可能な限り最速のパフォーマンスを実現します。また、データを物理的にユーザーに近づけてレイテンシーを最小限に抑えられる複製機能が組み込まれています。

その他の注目に値するRedisの特徴には、複数のデータ構造のサポート、組み込みのLuaスクリプト、複数レベルのディスク上の永続性、高可用性があります。

適切なAI基盤モデルの選択方法

このモデル選択フレームワークを使用して、パフォーマンス要件とコスト、リスク、導入ニーズのバランスをとりながら、最も適切なモデルを選択してください。

関連コンテンツ Prestoに関する電子書籍に登録する
差別化機能

Redisは、アプリケーションのパフォーマンスを向上させるために特別に設計された補助コンポーネントとして、「従来型」NoSQLデータ・ストアとは一線を画しています。Redisの差別化機能をいくつか紹介します。

Redisキャッシュ・セッション

繰り返しになりますが、MongoDBなどのNoSQLデータベースやPostreSQLとは異なり、Redisはハードディスクやソリッドステート・ドライブではなく、サーバーのメインメモリーにデータを格納します。そのため、読み書きを行う際の応答時間が大幅に短縮されます。また、(Redis Sentinelとともに)高可用性を確保し、サービスやアプリケーション・ワークロードの拡張性を確保するのにも役立ちます。

Redisキュー

Redisは、Webクライアントの処理に通常よりも時間がかかる可能性のあるタスクをキューに入れることができます。マルチプロセス・タスク・キューイングは、今日のWebベース・アプリケーションの多くで一般的に利用されており、Redisを使用すると、要求/応答サイクルのバックグラウンドで実行される、Pythonで記述された自動プロセスを簡単に実装できます。

Redisのデータ型

Redisは技術的にはキー/値ストアですが、実際には次のような複数のデータ型と構造をサポートするデータ構造サーバーです。

  • ソートされていない一意の文字列要素

  • バイナリーセーフなデータ

  • HyperLogLogs

  • ビット配列

  • ハッシュ

  • リスト

Redisクライアントの処理

Redisは、データを操作してやり取りできるよう開発者を支援するネイティブ・クライアント統合機能を備えています。現在、Redisクライアント・ライブラリーでは100を超えるさまざまなオープンソース・クライアントが利用可能で、開発者は新しい統合を簡単に追加して、追加の機能やプログラミング言語をサポートできます。

特長

Redisの最も重要な機能や注目すべき機能には次のようなものがあります。

Redis Sentinel

Redis Sentinel(ibm.com外部のリンク)はスタンドアロンの分散システムで、開発者がインスタンスを調整し、クライアントの可用性を高めるのに役立ちます。Sentinelは、一連の監視プロセス、通知、および自動フェイルオーバーを使用して、マスターとスレーブのインスタンスに異常が発生したときにユーザーに通知し、必要に応じてアプリケーションの新しい接続を自動的に再構成します。

Redis Cluster

Redis Cluster(ibm.com外部のリンク)は、データセットを複数のノード間で自動的に分割するRedisの分散実装です。データベース展開のパフォーマンスと拡張性が向上すると同時に、ノードのサブセットがクラスターの残りの部分と通信できない場合でも継続的な運用を保証します。

Redis Pub/Sub

Redisは公開およびサブスクライブ(Pub/Sub)コマンド(ibm.com外部のリンク)の使用をサポートしているため、ユーザーはすべてのアプリケーションとサービスで高性能なチャットおよびメッセージング・サービスを設計できます。これには、リスト・データ構造を使用してアトミックな操作とブロック機能を実行する機能が含まれます。

Redis永続化

Redisは、プロセスの停止や ネットワークのボトルネックにも耐えられるように設計された永続ディスク・ストレージ(ibm.com外部のリンク)を使用します。Redisは、データの定期的なスナップショットを取得し、利用可能になったときに変更を追加することで、データセットを永続化できます。その後、これらのデータベース・バックアップをオンデマンドまたは自動間隔で生成するようにRedisを構成して、データベースの持続性と整合性を確保できます。

RedisとMemcachedの比較

RedisとMemcachedはどちらもオープンソースのインメモリー・データ・ストアですが、メリットと機能に違いがあります。Memcachedは、より少ないメモリー・リソースを必要とする単純なアプリケーションに適した選択肢であることがよくありますが、シリアル化された形式でデータを保存する場合には制限があります。Redisのデータ構造を使用すると、大規模なデータセットを操作する際の能力が大幅に向上し、キャッシュの内容を微調整して特定のアプリケーション・シナリオでより高い効率性を維持できるようになります。

RedisとMongoDBの比較

Redisがインメモリー・データベース・ストアであるのに対し、MongoDBはディスク上のドキュメント・ストアとして知られています。どちらのソリューションも異なる目的のために構築されていますが、NoSQLデータベースの速度と効率性を最大化するために併用されることがよくあります。Redisはそのキャッシュ機能により、必要なデータを非常に迅速に見つけることができ、MongoDBの効率性を高める取り込みバッファとして機能し、より頻繁な文書の更新をほぼリアルタイムで管理できるようになります。MongoDBの大量のデータを保存する機能と、それをより高速に処理するRedisの機能を組み合わせることで、さまざまなユースケースに強力なデータベース管理ソリューションを提供します。

ユースケース

ここでは、Redisを使用することで企業がメリットを得られる一般的なユースケースをいくつか紹介します。

  • リアルタイム分析:Redisはミリ秒未満のレイテンシーでデータを処理できるため、リアルタイム分析、オンライン広告キャンペーン、AI駆動型の機械学習プロセスに最適です。

  • ロケーションベースのアプリケーション:Redisは、地理空間インデックス、セット、操作を提供することで、ロケーションベースのアプリケーションやサービスの開発を簡素化します。ソートされたセットを使用することで、Redisは時間のかかる位置情報の検索とソートをオフロードすることができ、同時にインテリジェントなジオハッシュの実装を使用することができます。

  • データベースのキャッシュ:Redisは、インメモリー・データストレージ機能を活用して応答性の高いデータベース構成をサポートすることで、大量のリアルタイム・データを処理できます。Redisでキャッシュすると、データベースへのアクセス数が減るため、必要なトラフィックとインスタンスの量を削減できます。Redisをキャッシュに使用することで、開発チームはミリ秒未満のレイテンシーを実現し、アプリケーションのスループットを大幅に向上させることができます。また、Redisのキャッシュ層は迅速に低コストで拡張できるため、組織は全体的な支出を削減しながら、これらの応答性の高いアプリケーションを開発できます。
Redisのインストール

Redisの使用開始は、特にRedis Desktop Manager(RDM)(ibm.com外部のリンク)を使用すると、かなりシームレスなプロセスになります。また、RedisとRDMはオープンソースであるため、活発な開発コミュニティーは常に運用効率の向上に努め、サポートされるツールと統合を継続的に進化させています。

Redisのインストールとセットアップの詳細については、コミュニティーのセットアップ手順に従ってください(ibm.com外部のリンク)。

関連ソリューション
IBM Cloud Databases for Redis

最新のアプリケーション・スタック向けに設計されたオープンソースのインメモリー・キー・バリュー・ストア

IBM Cloud Databases for Redisの詳細はこちら
IBM クラウド上のデータベースを選択する方法

クラウドネイティブ・アプリケーションに適切なデータベースを選択する方法をご紹介します。

NoSQLデータベースとは

従来のデータベースよりも柔軟性の高いデータベース設計の一種であるNoSQLについて知っておくべきことをすべてお読みください。

MongoDB とは何ですか?

MongoDBをエンタープライズ・データベース管理ソリューションの一部として使用する場合の機能とメリットの詳細をご覧ください。

次のステップ

IBM Cloud Databases for Redisは、Redisの強力なインメモリー・キャッシング機能を最新のアプリケーション・スタックに実装するためのフルマネージド・ソリューションです。 Databases for Redisは、ディスクとRAMを独立して拡張できるエンタープライズ対応のソリューションで、最も革新的なアプリケーション要件のリソース需要の増大に対応するために必要な柔軟性を提供します。

Cloud Databases for Redisの詳細はこちら