Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第163章 Spring Redis
Spring Redis コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.11 から利用可能
このコンポーネントにより、Redis からのメッセージの送受信が可能になります。Redis は高度なキーと値のストアで、キーには文字列、ハッシュ、リスト、セット、およびソートされたセットを含めることができます。さらに、アプリケーション間通信に pub/sub 機能を提供します。Camel はコマンドを実行するためのプロデューサーを提供します。pub/sub メッセージをサブスクライブするコンシューマーは、重複メッセージをフィルターリングするためのべき等リポジトリーになります。
前提条件
このコンポーネントを使用するには、Redis サーバーが実行中である必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
spring-redis://host:port[?options]
spring-redis://host:port[?options]
URI にクエリーオプションは
?options=value&option2=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | コンテキスト | 説明 |
---|---|---|---|
host
|
null
|
両方 | Redis サーバーが実行されているホスト。 |
port
|
null
|
両方 | Redis ポート番号。 |
command
|
SET
|
両方 | デフォルトコマンド。メッセージヘッダーで上書きできます。 |
channels
|
SET
|
コンシューマー | サブスクライブするトピック名または名前パターンのリスト。 |
redisTemplate
|
null
|
プロデューサー |
レジストリーに事前設定された org.springframework.data.redis.core.RedisTemplate インスタンスへの参照。
|
connectionFactory
|
null
|
両方 |
レジストリーの org.springframework.data.redis.connection.RedisConnectionFactory インスタンスへの参照。
|
listenerContainer
|
null
|
コンシューマー |
レジストリーのレジストリーインスタンスで org.springframework.data.redis.listener.RedisMessageListenerContainer インスタンスへの参照。
|
serializer
|
null
|
コンシューマー |
レジストリーの org.springframework.data.redis.serializer.RedisSerializer インスタンスへの参照。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Redis プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーはサーバーにコマンドを発行し、各コマンドには特定タイプの異なるパラメーターのセットがあります。コマンドの実行の結果はメッセージボディーで返されます。
ハッシュコマンド | 説明 | パラメーター | 結果 |
---|---|---|---|
HSET
|
ハッシュフィールドの文字列値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value (オブジェクト型) | void |
HGET
|
ハッシュフィールドの値を取得します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | 文字列 |
HSETNX
|
フィールドが存在しない場合にのみ、ハッシュフィールドの値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value (オブジェクト型) | void |
HMSET
|
複数のハッシュフィールドを複数の値に設定します。 | CamelRedis.Key (String), CamelRedis.Values(Map<String, Object>) | void |
HMGET
|
指定されたハッシュフィールドの値を取得します。 | CamelRedis.Key (文字列), CamelRedis.Fields (Collection<String>) | コレクション<Object> |
HINCRBY
|
ハッシュフィールドの整数値を指定の数だけ増やします。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value(Long 型) | Long |
HEXISTS
|
ハッシュフィールドが存在するかどうかを判断する | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | ブール値 |
HDEL
|
1 つ以上のハッシュフィールドを削除します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | void |
HLEN
|
ハッシュ内のフィールド数を取得します。 | CamelRedis.Key (文字列) | Long |
HKEYS
|
ハッシュ内のすべてのフィールドを取得します。 | CamelRedis.Key (文字列) | Set<String> |
HVALS
|
ハッシュのすべての値を取得します。 | CamelRedis.Key (文字列) | コレクション<Object> |
HGETALL
|
ハッシュのすべてのフィールドおよび値を取得します。 | CamelRedis.Key (文字列) | Map<String, Object> |
list commands | 説明 | パラメーター | 結果 |
---|---|---|---|
RPUSH
|
1 つまたは複数の値をリストに追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
RPUSHX
|
リストが存在する場合に限り、リストに値を追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
LPUSH
|
1 つまたは複数の値をリストに追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
LLEN
|
リストの長さを取得します。 | CamelRedis.Key (文字列) | Long |
LRANGE
|
リストからの要素の範囲を取得します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | List<Object> |
LTRIM
|
リストを指定の範囲にトリミングする | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
LINDEX
|
インデックスでリストから要素を取得します。 | CamelRedis.Key (文字列), CamelRedis.Index(Long 型) | 文字列 |
LINSERT
|
リスト内の別の要素の前後に要素を挿入 | CamelRedis.Key (文字列)、CamelRedis.Value (Object)、CamelRedis.Pivot (String)、CamelRedis.Position (String) | Long |
LSET
|
リスト内の要素の値をインデックスで設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Index(Long 型) | void |
LREM
|
リストからの要素の削除 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Count(Long 型) | Long |
LPOP
|
リストの最初の要素を削除して取得します。 | CamelRedis.Key (文字列) | オブジェクト |
RPOP
|
リストの最後の要素を削除して取得します。 | CamelRedis.Key (文字列) | 文字列 |
RPOPLPUSH
|
リストの最後の要素を削除し、別のリストに追記して返します。 | CamelRedis.Key (文字列), CamelRedis.Destination (文字列) | オブジェクト |
BRPOPLPUSH
|
リストから値をポップし、その値を別のリストにプッシュして返します。または 1 つが利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Destination (文字列), CamelRedis.Timeout(Long 型) | オブジェクト |
BLPOP
|
リストの最初の要素を削除して取得するか、以下が利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | オブジェクト |
BRPOP
|
リストの最後の要素を削除して取得するか、以下が利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | 文字列 |
コマンドの設定 | 説明 | パラメーター | 結果 |
---|---|---|---|
SADD
|
セットに 1 つ以上のメンバーを追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SMEMBERS
|
セット内のすべてのメンバーを取得します。 | CamelRedis.Key (文字列) | Set<Object> |
SREM
|
セットから 1 つ以上のメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SPOP
|
セットからランダムなメンバーを削除して返します。 | CamelRedis.Key (文字列) | 文字列 |
SMOVE
|
あるセットから別のセットにメンバーを移動します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Destination (文字列) | ブール値 |
SCARD
|
セット内のメンバー数を取得します。 | CamelRedis.Key (文字列) | Long |
SISMEMBER
|
指定された値がセットのメンバーであるかどうかを決定する | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SINTER
|
複数セットの補間 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SINTERSTORE
|
複数のセットに干渉し、作成されるセットをキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SUNION
|
複数のセットの追加 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SUNIONSTORE
|
複数のセットを追加し、作成される をキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SDIFF
|
複数のセットを減算 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SDIFFSTORE
|
複数のセットを引き、作成される をキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SRANDMEMBER
|
セットから 1 つまたは複数のランダムメンバーを取得します。 | CamelRedis.Key (文字列) | 文字列 |
順序付きの設定コマンド | 説明 | パラメーター | 結果 |
---|---|---|---|
ZADD
|
ソートされたセットにメンバーを 1 つ以上追加するか、スコアが存在する場合は更新します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Score (Double 型) | ブール値 |
ZRANGE
|
インデックスごとにソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列)、CamelRedis.Start (Long)、CamelRedis.End (Long)、CamelRedis.WithScore (Boolean) | オブジェクト |
ZREM
|
ソートされたセットから 1 つ以上のメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
ZINCRBY
|
ソートされたセット内のメンバーのスコアを増やす | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Increment (Double 型) | double |
ZRANK
|
ソートされたセットでメンバーのインデックスを決定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
ZREVRANK
|
ソートされたセットでメンバーのインデックスを決定します。スコアは high から low に付けられます。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
ZREVRANGE
|
ソートされたセット内のメンバーの範囲を、インデックス別に返します。スコアは high から low に付けられます。 | CamelRedis.Key (文字列)、CamelRedis.Start (Long)、CamelRedis.End (Long)、CamelRedis.WithScore (Boolean) | オブジェクト |
ZCARD
|
ソートされたセット内のメンバー数を取得します。 | CamelRedis.Key (文字列), | Long |
ZCOUNT
|
指定の値内のスコアでソートされたセット内のメンバーをカウントします。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Long |
ZRANGEBYSCORE
|
スコアでソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Set<Object> |
ZREVRANGEBYSCORE
|
スコアが high から low のソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Set<Object> |
ZREMRANGEBYRANK
|
指定されたインデックス内でソートされたセットのすべてのメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
ZREMRANGEBYSCORE
|
指定のスコア内でソートされたセット内のすべてのメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
ZUNIONSTORE
|
複数のソートされたセットを追加し、作成されるソートされたセットを新しいキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
ZINTERSTORE
|
複数のソートされたセットを補間し、作成されるソートされたセットを新しいキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
string commands | 説明 | パラメーター | 結果 |
---|---|---|---|
SET
|
キーの文字列値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | void |
GET
|
キーの値を取得します。 | CamelRedis.Key (文字列) | オブジェクト |
STRLEN
|
キーに保存されている値の長さを取得します。 | CamelRedis.Key (文字列) | Long |
APPEND
|
キーに値を追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (文字列) | 整数 |
SETBIT
|
キーに保存される文字列値のオフセットでビットを設定または消去します。 | CamelRedis.Key (文字列), CamelRedis.Offset(Long 型), CamelRedis.Value (ブール型) | void |
GETBIT
|
キーに保存される文字列値のオフセットでビット値を返します。 | CamelRedis.Key (文字列), CamelRedis.Offset(Long 型) | ブール値 |
SETRANGE
|
指定されたオフセットから開始するキーの文字列の一部を上書きします。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Offset(Long 型) | void |
GETRANGE
|
キーに保存されている文字列のサブ文字列を取得します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | 文字列 |
SETNX
|
キーが存在しない場合にのみ、キーの値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SETEX
|
キーの値および有効期限を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Timeout(Long 型), SECONDS | void |
DECRBY
|
指定された数でキーの整数値をデクリメントする | CamelRedis.Key (文字列), CamelRedis.Value(Long 型) | Long |
DECR
|
キーの整数値を 1 つずつ減らす | CamelRedis.Key (文字列), | Long |
INCRBY
|
指定された量でキーの整数値を増やします。 | CamelRedis.Key (文字列), CamelRedis.Value(Long 型) | Long |
INCR
|
キーの整数値を 1 つずつ増やします。 | CamelRedis.Key (文字列) | Long |
MGET
|
指定したすべてのキーの値を取得します。 | CamelRedis.Fields (Collection<String>) | List<Object> |
MSET
|
複数のキーに複数の値を設定する | CamelRedis.Values(Map<String, Object>) | void |
MSETNX
|
複数のキーを複数値に設定します(キーが存在しない場合のみ)。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | void |
GETSET
|
キーの文字列値を設定し、その古い値を返します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | オブジェクト |
主要なコマンド | 説明 | パラメーター | 結果 |
---|---|---|---|
EXISTS
|
キーが存在するかどうかを判断する | CamelRedis.Key (文字列) | ボルア語 |
DEL
|
キーを削除します。 | CamelRedis.Keys (String) | void |
TYPE
|
キーに保存されているタイプを特定します。 | CamelRedis.Key (文字列) | DataType |
KEYS
|
指定したパターンに一致するすべてのキーを検索します。 | CamelRedis.Pattern (String) | Collection<String> |
RANDOMKEY
|
キースペースからランダムなキーを返します。 | CamelRedis.Pattern (文字列)、CamelRedis.Value (文字列) | 文字列 |
RENAME
|
キーの名前変更 | CamelRedis.Key (文字列) | void |
RENAMENX
|
キーの名前変更(新しいキーが存在しない場合のみ) | CamelRedis.Key (文字列), CamelRedis.Value (文字列) | ブール値 |
EXPIRE
|
キーの時間を秒単位で設定する | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | ブール値 |
SORT
|
リスト、設定、またはソートされたセット内の要素を並べ替えます。 | CamelRedis.Key (文字列) | List<Object> |
PERSIST
|
キーから有効期限を削除します。 | CamelRedis.Key (文字列) | ブール値 |
EXPIREAT
|
キーの有効期限を UNIX タイムスタンプとして設定します。 | CamelRedis.Key (文字列), CamelRedis.Timestamp(Long 型) | ブール値 |
PEXPIRE
|
キーの時間をミリ秒単位で設定します。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | ブール値 |
PEXPIREAT
|
キーの有効期限をミリ秒単位で指定された UNIX タイムスタンプとして設定します。 | CamelRedis.Key (文字列), CamelRedis.Timestamp(Long 型) | ブール値 |
TTL
|
キーの有効期間を取得します。 | CamelRedis.Key (文字列) | Long |
MOVE
|
キーを別のデータベースに移動する | CamelRedis.Key (文字列), CamelRedis.Db (整数) | ブール値 |
その他のコマンド | 説明 | パラメーター | 結果 |
---|---|---|---|
MULTI
|
トランザクションブロックの開始をマークします。 | none | void |
DISCARD
|
MULTI の後に発行されたすべてのコマンドを破棄します。 | none | void |
EXEC
|
MULTI の後に発行されたすべてのコマンドを実行します。 | none | void |
WATCH
|
MULTI/EXEC ブロックの実行を決定するために指定のキーを監視します。 | CamelRedis.Keys (String) | void |
UNWATCH
|
監視されるすべてのキーについて忘れる | none | void |
ECHO
|
指定の文字列を echo します。 | CamelRedis.Value (String) | 文字列 |
PING
|
サーバーに ping します。 | none | 文字列 |
QUIT
|
接続を閉じる | none | void |
PUBLISH
|
メッセージをチャネルに投稿 | CamelRedis.Channel (文字列), CamelRedis.Message (オブジェクト型) | void |
Redis コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーは、SUBSCRIBE コマンドを使用してチャネル名または
P SUBSCRIBE
コマンドを使用して文字列パターンでチャネルにサブスクライブします。PUBLISH コマンドを使用してチャネルにメッセージを送信すると、メッセージが消費され、メッセージは Camel メッセージボディーとして利用できます。メッセージは、設定されたシリアライザーまたはデフォルトの JdkSerializationRedisSerializer を使用してシリアライズされます。
コンシューマーによって設定されたメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
CamelRedis.Channel
|
文字列
|
メッセージが受信されたチャネル名。 |
CamelRedis.Pattern
|
文字列
|
メッセージが受信されたチャネルに一致するパターン。 |
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spring-redis</artifactId> <version>${camel-version}</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-redis</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version}
は、実際のバージョンの Camel (2.11 以降)に置き換える必要があります。