Redisとは

現代的な図書館の大きな窓辺に座り、ノートPCで作業している男性。

Redisとは

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

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

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

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

ニュースレターを表示しているスマホの画面

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

差別化機能

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

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

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

Redisキュー

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

Redisのデータ型

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

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

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

  • HyperLogLogs

  • ビット配列

  • ハッシュ

  • リスト

Redisクライアントの処理

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

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

主な機能

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

Redis Sentinel

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

Redis Cluster

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

Redis Pub/Sub

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

Redis永続化

Redisは、プロセスの停止やネットワークのボトルネックにも耐えられるように設計された永続ディスク・ストレージを使用します。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)を使用すると、かなりシームレスなプロセスになります。また、RedisとRDMはオープンソースであるため、活発な開発コミュニティーは常に運用効率の向上に努め、サポートされるツールと統合を継続的に進化させています。

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

関連ソリューション
データベース・ソフトウェアとソリューション

IBMのデータベース・ソリューションを活用して、ハイブリッドクラウド全体のさまざまなワークロードのニーズに対応しましょう。

データベース・ソリューションの詳細はこちら
IBM Db2を使用したクラウドネイティブ・データベース

構造化データの保管と管理に高性能で拡張性と信頼性を備えたリレーショナル・データベースであるIBM Db2をご覧ください。IBM Cloud上でSaaSとして、もしくはセルフホスティングとしてご利用いただけます。

Db2の詳細はこちら
データ分析コンサルティングサービス

IBMコンサルティングと連携することで、企業データの価値を引き出し、ビジネス上の優位性をもたらす洞察を活用した組織を構築します。

分析サービスを発見する
次のステップ

IBMのデータベース・ソリューションを活用して、ハイブリッドクラウド全体のさまざまなワークロードのニーズに対応しましょう。

データベース・ソリューションの詳細はこちら IBM Db2の詳細はこちら