ホーム topics Redis Redisとは
Redisの特長と、Redisを企業のデータベース管理ソリューションとして使用するメリットについてご説明します。
青い半円のイラスト
Redisとは

RedisREmote DIctionary Server)(IBM外のリンク)は主にアプリケーション・キャッシュまたは迅速に対応するデータベースとして使用されるオープンソースかつインメモリーのNoSQLキー/バリュー・ストアです。 Redisはディスクまたはソリッド・ステート・ドライブ(SSD)ではなく、メモリー内にデータを保存するため、非常に優れたスピード、信頼性、パフォーマンスを提供します。

アプリケーションが外部のデータ・ソースに依存していると、特にトラフィックが増加したりアプリケーションが拡張されたりする場合、これらのデータ・ソースの遅延とスループットがパフォーマンスのボトルネックの原因になる可能性があります。 このような場合、パフォーマンスを向上させるための方法の1つとして、アプリケーションに物理的に近い場所でのメモリー内でのデータの保存・操作があります。 Redisはこのタスクのために設計されています。つまり、Redisは、すべてのデータをメモリー内に保存することでデータの読み取り/書き取りの際にできる限り迅速にパフォーマンスを提供し、遅延を低くするために物理的にユーザーに近い場所にデータを配置できる組み込みの複製機能を提供します。

その他の注目すべきRedisの特徴には、複数のデータ構造のサポート、組み込みLuaスクリプティング、複数レベルのオンディスク・パーシスタンス、高可用性が含まれます。

差別化要因となる機能

Redisは特にアプリケーションのパフォーマンスを向上させるために設計された補助的なコンポーネントとして、「従来」のNoSQLデータ・ストアとは一線を画しています。 Redisの差別化要因となる機能には次のようなものがあります。

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

繰り返しになりますが、RedisはMongoDBPostreSQLなどのNoSQLデータベースと異なり、ハード・ディスクやソリッド・ステート・ドライブではなく、サーバーのメイン・メモリーにデータを保存します。 この機能により、読み取り/書き込み操作を実行する場合の応答時間が大幅に速くなります。 この機能はまた、サービスとアプリケーション・ワークロードの高可用性と拡張性の確保にも役立ちます。高可用性については下記のRedis Sentinelとともに機能します。

Redisのキュー処理

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

Redisのデータ・タイプ

Redisは、技術的にはキー/バリュー・ストアである一方、以下を含む複数のデータ・タイプとデータ構造をサポートする実際のデータ構造サーバーでもあります。

  • ソートされていない独自の文字列要素

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

  • HyperLogLog

  • ビット列

  • ハッシュ化データ

  • リスト

Redisのクライアント処理

Redisは、開発者によるデータの操作とデータとの対話をサポートするネイティブ・クライアント統合機能を特長としています。 現在、100を超えるさまざまなオープンソース・クライアントをRedisクライアント・ライブラリーで使用でき、開発者は、容易に新しい統合を加えてその他の機能やプログラミング言語をサポートできます。

主要な機能

Redisの最も重要あるいは特筆すべき機能には以下が含まれます。

Redis Sentinel

Redis Sentinel(IBM外のリンク)は、スタンドアロン型の分散システムであり、開発者がクライアント向けにインスタンスの可用性を高くするために調整を行う際に役立ちます。 Sentinelは、連続する監視プロセス、通知、自動フェイルオーバーを使用して、マスター・インスタンスとスレーブ・インスタンスに異常がある場合にユーザーに通知する一方で、必要に応じてアプリケーションの新規接続を自動的に再設定します。

Redis Cluster

Redis Cluster(IBM外のリンク)は、複数のノードの中でデータ・セットを自動的に分割する、Redisの分散型実装です。 また、データベース・デプロイメントのより高いパフォーマンスと拡張性をサポートすると同時に、ノードのサブセットがクラスターのその他の部分と通信できなくなった場合に継続的な運用を確保します。

Redis Pub/Sub

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

Redisの永続性

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

RedisとMemcached

RedisとMemcachedはどちらもオープンソースのインメモリー・データ・ストアですが、そのメリットと特長は異なります。 多くの場合、Memcachedは、必要なメモリー・リソースが多くないシンプルなアプリケーション用に好まれますが、データがシリアル化形式で保存される場合には制限があります。 Redisのデータ構造の使用により、大規模なデータ・セットを取り扱うときにより大きな効力が発揮され、特定のアプリケーション・シナリオにおける、キャッシュ・コンテンツの微調整と高い効率性の維持のためのより高い能力が提供されます。

RedisとMongoDB

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

ユースケース

企業がRedisを使用して作業する際にメリットを得られる、一般的なユースケースには以下が挙げられます。

  • リアルタイム分析:Redisはサブミリ秒単位の遅延でデータを処理できるため、リアルタイム分析、オンライン広告キャンペーン、AI駆動型の機械学習プロセスに適しています。

  • ロケーション・ベースのアプリケーション:Redisは、地理空間の索引付け、設定、運用を提供することで、ロケーション・ベースのアプリケーションとサービスの開発を簡素化します。 Redisは、ソートされた設定を使用し、時間を要するロケーション・データの検索やソートにかかる負荷を軽減しながら、インテリジェントなGeoHash実装も使用します。

  • データベースのキャッシング:Redisは、大量のリアルタイム・データを処理できるため、そのインメモリー・データ・ストレージ機能を活用すると、即応性の高いデータベース構造のサポートに役立ちます。 Redisによるキャッシングではデータベース・アクセスを減らすことができます。これは、必要なトラフィックとインスタンスを減らすために役立ちます。 キャッシングにRedisを使用することで、開発チームは、サブミリ単位の遅延の達成を通じて、アプリケーションのスループットを劇的に向上させることができます。 また、Redisのキャッシング層は迅速かつ経済的に拡張できるため、組織は、こうした即応性の高いアプリケーションを開発すると同時に、全体的な支出を削減できます。
Redisのインストール

Redisの利用開始は、特にRedis Desktop Manager(RDM)(IBM外のリンク)を使用する場合、非常にシームレスなプロセスです。 また、RedisとRDMはオープンソースであるため、活発な開発コミュニティーが常に活動し、運用効率の向上とサポート対象のツールと統合の継続的な進化に取り組んでいます。

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

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

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

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

クラウドネイティブ・アプリケーションに適したデータベースを選択する方法についてご説明します。

NoSQLデータベースとは

従来のデータベースよりも高い柔軟性を提供するデータベース設計の一種であるNoSQLについて詳しくご説明します。

MongoDBとは

このガイドでは、エンタープライズ・データベース管理ソリューションの一部として、MongoDBを使用する際の特性とメリットをご説明します。

詳細情報はこちら

IBM Cloud® Databases for Redisは、Redisの強力なインメモリー・キャッシュ機能を最新のアプリケーション・スタックに実装するためのフル・マネージドのソリューションです。 Databases for Redisは、ディスクとRAMの個別の拡張を可能にし、最も革新的なアプリケーション要件において増え続けるリソース要求を満たすために必要な柔軟性を提供する、エンタープライズ向けソリューションです。

IBM Cloud® Databases for Redisの詳細はこちら