Redis コネクタ

Select

Redis は、オープンソースの高度なキー - 値ストアです。 データ構造サーバと呼ばれることもよくあります。これは、キーに文字列、ハッシュ、リスト、セット、ソート済みセットを保存できるためです。

Redis コネクタは、CRUD API を完全にサポートします。

前提条件

このドキュメントは、読者が Mule、Anypoint コネクタ、Anypoint Studio の基礎、Mule フローの要素、グローバル要素に精通していることを前提としています。

名前空間とスキーマ

Studio でアプリケーションを設計するときに、コネクタをパレットから Anypoint Studio キャンバスにドラッグすると、XML コードにコネクタの名前空間とスキーマの場所が自動的に入力されます。

Studio の XML エディタまたはその他のテキストエディタで Mule アプリケーションを手動でコーディングする場合は、これらを設定 XML のヘッダーの <mule> タグの内部に貼り付けます。

<mule xmlns:redis="http://www.mulesoft.org/schema/mule/redis"
  ...
  xsi:schemaLocation="http://www.mulesoft.org/schema/mule/redis http://www.mulesoft.org/schema/mule/connector/current/mule-redis.xsd">
  ...
  <flow name="yourFlow">
  ...
  </flow>
</mule>

Maven 対応の Mule アプリケーションでのコネクタの使用

Maven 対応の Mule アプリケーションをコーディングしている場合は、次のスニペットを pom.xml ファイルに含める必要があります。

<dependency>
  <groupId>org.mule.modules</groupId>
  <artifactId>mule-redis-connector</artifactId>
  <version>RELEASE</version>
</dependency>

<version> タグ内で、目的のバージョン番号を指定するか、最新リリースの場合は RELEASE、最新の使用可能なバージョンの場合は SNAPSHOT を指定します。

互換性

ソフトウェア バージョン

Mule Runtime

4.0.0 以降

Redis サーバ

2.8.x、3.0.x、3.2.x

インストール

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

設定

Mule アプリケーションで Redis コネクタを使用するには、アプリケーション内のすべてのコネクタが使用できるグローバル Redis 要素を設定します。

以降のセクションでは、グローバル要素を設定するためのプロパティについて説明します。

非クラスタ設定

設定

上の画像で、プレースホルダ値は、プロジェクトの src フォルダにある設定ファイルを参照します。ログイン情報をグローバル設定プロパティにハードコードするか、これらの値が含まれる設定ファイルを参照できます。メンテナンスをシンプルにして、プロジェクトを再利用できるようにするために、設定ファイルを使用することをお勧めします。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

項目 説明

Name (名前)

後ほど参照するために設定の名前を入力します。

Host (ホスト)

Redis ホスト。コネクタを使用して、クラスタに属さない Redis サーバにアクセスする場合には、この項目を使用します。

Port (ポート)

Redis ポート。非クラスタサーバが動作しているポート。

Connection Timeout (接続タイムアウト)

接続タイムアウト (ミリ秒)。

Entry Ttl (エントリ TTL)

コネクタを使用して保存されたキーに設定されるデフォルトの存続期間。

Password (パスワード)

Redis パスワード。サーバで認証が必要な場合に設定します。

クラスタ設定

設定
項目 説明

Name (名前)

後ほど参照するために設定の名前を入力します。

Cluster Hosts (クラスタホスト)

Redis クラスタホスト。カンマで区切り、host:port の形式にします。コネクタを使用して、Redis クラスタにアクセスする場合には、この項目を使用します。

Connection Timeout (接続タイムアウト)

接続タイムアウト (ミリ秒)。

Entry Ttl (エントリ TTL)

コネクタを使用して保存されたキーに設定されるデフォルトの存続期間。

古いバージョンからのアップグレード

現在、コネクタの古いバージョンを使用している場合は、Anypoint Studio の右下隅に「Updates Available (更新あり)」メッセージの小さなポップアップが表示されます。

  1. ポップアップをクリックして、使用可能な更新を確認します。

  2. コネクタバージョンのチェックボックスをクリックし、[Next (次へ)] をクリックしてユーザインターフェースに表示された手順に従います。

  3. Studio を再起動するように要求されたら、再起動します。

  4. 再起動後、フロー作成時と Object Store Connector 使用時に、コネクタの複数のバージョンがインストールされている場合は、どのバージョンを使用するかを尋ねられることがあります。その場合は、いずれかを選択します。

Studio のコネクタは最新のバージョンにしておくことをお勧めします。

このコネクタの使用

このコネクタは、チャネルからのメッセージをコンシュームするインバウンドエンドポイントとして使用できます。コネクタを使用してこれらのチャネルのいずれかにサブスクライブするか、アウトバウンドコネクタとして Redis サーバにコマンドを送信できます。

ユースケースの例

Redis サーバへのキーの値の保存

このユースケースでは、コネクタを使用して Redis サーバ内のキーに値を割り当てる方法について説明します。

  1. [File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] をクリックして新しいプロジェクトを作成します。

  2. 新しいプロジェクトのダイアログボックスで実行する必要があるのは、新しいプロジェクトの名前を入力することだけです。[Finish (完了)] をクリックします。

    新しいプロジェクトのダイアログ
  3. プロジェクトの構造内で移動し、src/main/mule/project-name.xml をダブルクリックして開きます。以下の手順はすべてこのファイル上で実行します。

  4. パレットに移動し、「HTTP」を検索し、新しい [HTTP Connector Listener (HTTP コネクタリスナ)] をドラッグしてキャンバスにドロップします。この要素はフローのエントリポイントであり、キーとそのキーに設定される値を提供します。

  5. パレットに移動し、「Redis」を検索し、新しい [Redis Set (Redis 設定)] 操作をドラッグして HTTP コネクタの後にドロップします。この要素は、Redis サーバにデータを送信します。

  6. [Redis Set (Redis 設定)] 操作をダブルクリックし、次のようにプロパティを設定します。

    1. [Display Name (表示名)] を「Set Value For Key Into Redis」(Redis へのキーの値の設定) と設定します。

    2. [Extension configuration (拡張機能設定)] ドロップダウンから、設定のデフォルト名である [Redis__Configuration] または設定したその他の任意の設定を選択します。

    3. [Operation (操作)] ドロップダウンから [Set (設定)] を選択します。

    4. [Key (キー)] を「#[payload.key]」に設定します。

    5. [Value (値)] を「#[payload.value]」に設定します。

      Redis 設定操作の設定
  7. パレットに移動し、「Set Payload」(ペイロードを設定) を検索し、新しい [Set Payload (ペイロードを設定)] 要素をドラッグして Redis コネクタの後にドロップします。この要素は、受信 HTTP 要求の応答を作成します。

    未設定のプロデューサフロー
  8. フローの上余白をダブルクリックしてプロパティを開き、フローの名前を「set-flow」に変更します。

    フロー設定の定義
  9. HTTP コネクタの [Listener (リスナー)] をダブルクリックしてプロパティを開きます。

    1. [Connector configuration (コネクタ設定)] ドロップダウンメニューの横にある緑のプラス記号をクリックします。

    2. ポップアップが表示されます。デフォルト設定のままで [OK] をクリックします。

    3. [Path (パス)] に / を設定します。

    4. [Display Name (表示名)] を Listener と設定します。

      HTTP 設定の定義
  10. [Set Payload (ペイロードを設定)] をダブルクリックし、次のようにプロパティを設定します。

    1. [Display Name (表示名)] を「Set Value Response」(値設定の応答) と設定します。

    2. [Value (値)] を「Value Successfully Set」(正常に値が設定されました) に設定します。

      HTTP 応答設定の定義
  11. Redis グローバル要素の設定にプレースホルダ値を使用した場合は、ここでそれらのプレースホルダの値を指定する必要があります。/src/main/resources/mule-app.properties を開き、config.host、config.port、config.connectionTimeout の各プロパティに値を指定します。

  12. アプリケーションをデプロイします。

  13. アプリケーションが実行されたら、HTTP 要求を送信してフローをトリガします。これを行うには、CURL コマンドラインユーティリティまたは HTTP クライアントアプリケーション (Postman など) を使用して、コンテンツタイプが application/x-www-form-urlencoded で本文が urlencoded 形式の POST 要求を localhost:8081/ に送信します。要求の本文にはキーと値を含めます。次の CURL コマンドを使用して、それを実行できます。

    curl -X POST -d "key=test-key" -d "value=test-value" localhost:8081/

    おめでとうございます! これで Redis サーバにキーの値を設定できました。

Redis サーバコードへのキーの値の保存

  1. Redis 名前空間を Mule 要素に追加します。

    xmlns:redis="http://www.mulesoft.org/schema/mule/redis"
  2. Redis 名前空間によって参照される Redis スキーマの場所を追加します。

    http://www.mulesoft.org/schema/mule/redis
    http://www.mulesoft.org/schema/mule/sfdc-composite/current/mule-redis.xsd
  3. HTTP 名前空間を Mule 要素に追加します。

    xmlns:http="http://www.mulesoft.org/schema/mule/http"
  4. HTTP 名前空間によって参照される HTTP スキーマの場所を追加します。

    http://www.mulesoft.org/schema/mule/http
    http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
  5. プロジェクトに redis:config 要素を追加し、その属性を設定します。

    <redis:config name="Redis__Configuration" host="${config.host}"
     connectionTimeout="${config.connectionTimeout}" port="${config.port}"
     doc:name="Redis: Configuration"/>
  6. プロジェクトに http:listener-config 要素を追加し、その属性を設定します。

    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0"
     port="8081" doc:name="HTTP Listener Configuration"/>
  7. プロジェクトに空のフロー要素を追加します。

    <flow name="set-flow">
    </flow>
  8. フロー要素内に http:listener 要素を追加します。

    <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="Set value HTTP endpoint"/>
  9. フロー要素内の http:listener の後に redis:set を追加します。

    <redis:set config-ref="Redis__Configuration" key="#[payload.key]" value="#[payload.value]" doc:name="Set value for key into Redis"/>
  10. フロー要素内の redis:set の後に set-payload 要素を追加します。

    <set-payload value="Value successfully set" doc:name="Set value response"/>
  11. 完了すると、XML ファイルは次のようになります。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <mule xmlns:redis="http://www.mulesoft.org/schema/mule/redis"
    xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
    xmlns:http="http://www.mulesoft.org/schema/mule/http"
    xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    	xmlns:spring="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/http
    http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
    http://www.mulesoft.org/schema/mule/ee/tracking
    http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
    http://www.mulesoft.org/schema/mule/redis
    http://www.mulesoft.org/schema/mule/redis/current/mule-redis.xsd">
        <redis:config name="Redis__Configuration" host="${config.host}" connectionTimeout="${config.connectionTimeout}" port="${config.port}"
        doc:name="Redis: Configuration"/>
        <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0"
        port="8081" doc:name="HTTP Listener Configuration"/>
        <flow name="set-flow">
            <http:listener config-ref="HTTP_Listener_Configuration" path="/"
             doc:name="Set value HTTP endpoint"/>
            <redis:set config-ref="Redis__Configuration" key="#[payload.key]"
             value="#[payload.value]" doc:name="Set value for key into Redis"/>
            <set-payload
             value="Successfully set value: #[payload.value] to key: #[payload.key]"
             doc:name="Set value response"/>
        </flow>
    </mule>

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub