60.6. Usage


また、利用可能な 単体テスト も参照してください。

Redis producer

from(“direct:start”)
    .setHeader("CamelRedis.Key", constant(key))
    .setHeader("CamelRedis.Value", constant(value))
    .to("spring-redis://host:port?command=SET&redisTemplate=#redisTemplate");
Copy to Clipboard Toggle word wrap

Redis consumer

from("spring-redis://host:port?command=SUBSCRIBE&channels=myChannel")
   .log("Received message: ${body}");
Copy to Clipboard Toggle word wrap

注記

'//host:port' は、実行中の Redis サーバーの URL アドレスです。

60.6.1. Redis producer によって評価されるメッセージヘッダー

producer はサーバーにコマンドを発行し、各コマンドには特定のタイプの異なるパラメーターセットがあります。コマンド実行の結果は、メッセージボディーで返されます。

Expand
ハッシュコマンド説明パラメーター結果

HSET

ハッシュフィールドの文字列値を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

Void

HGET

ハッシュフィールドの値を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)

文字列

HSETNX

フィールドが存在しない場合にのみ、ハッシュフィールドの値を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

Void

HMSET

複数のハッシュフィールドを複数の値に設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUES/"CamelRedis.Values" (Map<String, Object>)

Void

HMGET

指定されたすべてのハッシュフィールドの値を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELDS/"CamelRedis.Filds" (Collection<String>)

Collection<Object>

HINCRBY

指定された数だけハッシュフィールドの整数値をインクリメントします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Long)

ロング

HEXISTS

ハッシュフィールドが存在するかどうかを判断します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)

ブール値

HDEL

1 つ以上のハッシュフィールドを削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.FIELD/"CamelRedis.Field" (String)

Void

HLEN

ハッシュ内のフィールド数を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

HKEYS

ハッシュ内のすべてのフィールドを取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

Set<String>

HVALS

ハッシュ内のすべての値を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

Collection<Object>

HGETALL

ハッシュ内のすべてのフィールドと値を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

Map<String, Object>

Expand
リストコマンド説明パラメーター結果

RPUSH

1 つまたは複数の値をリストに追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

RPUSHX

リストが存在する場合にのみ、リストに値を追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

LPUSH

リストの先頭に 1 つまたは複数の値を追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

LLEN

リストの長さを取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

LRANGE

リストから要素の範囲を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"Long)、RedisConstants.END/"CamelRedis.End" (Long)

List<Object>

LTRIM

リストを指定された範囲にトリミングします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"Long)、RedisConstants.END/"CamelRedis.End" (Long)

Void

LINDEX

インデックスでリストから要素を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.INDEX/"CamelRedis.Index" (Long)

文字列

LINSERT

リスト内の別の要素の前後に要素を挿入します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.PIVOT/"CamelRedis.Pivot" (String)、RedisConstants.POSITION/"CamelRedis.Position" (String)

ロング

LSET

リスト内の要素の値をそのインデックスで設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.INDEX/"CamelRedis.Index" (Long)

Void

LREM

リストから要素を削除します。

RedisConstants.KEY/RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.COUNT/"CamelRedis.Count" (Long)

ロング

LPOP

リストの最初の要素を削除して取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

オブジェクト

RPOP

リストの最後の要素を削除して取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

文字列

RPOPLPUSH

リストの最後の要素を削除し、それを別のリストに追加して返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

オブジェクト

BRPOPLPUSH

リストから値をポップし、それを別のリストにプッシュして返します。または利用可能になるまでブロックします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)

オブジェクト

BLPOP

リストの最初の要素を削除して取得するか、使用可能になるまでブロックします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)

オブジェクト

BRPOP

リストの最後の要素を削除して取得するか、使用可能になるまでブロックします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)

文字列

Expand
コマンドの設定説明パラメーター結果

SADD

1 つまたは複数のメンバーをセットに追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ブール値

SMEMBERS

セット内のすべてのメンバーを取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

Set<Object>

SREM

セットから 1 つまたは複数のメンバーを削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ブール値

SPOP

セットからランダムなメンバーを削除して返します。

RedisConstants.KEY/"CamelRedis.Key" (String)

文字列

SMOVE

メンバーをあるセットから別のセットに移動します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

ブール値

SCARD

セット内のメンバーの数を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

SISMEMBER

指定された値がセットのメンバーであるかどうかを判別します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ブール値

SINTER

複数のセットを交差します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)

Set<Object>

SINTERSTORE

複数のセットを交差させ、結果のセットをキーに格納します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

Void

SUNION

複数のセットを追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)

Set<Object>

SUNIONSTORE

複数のセットを追加し、結果のセットをキーに保存します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

Void

SDIFF

複数のセットを減算します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)

Set<Object>

SDIFFSTORE

複数のセットを減算し、結果のセットをキーに格納します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

Void

SRANDMEMBER

セットから 1 つまたは複数のランダムメンバーを取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

文字列

Expand
順序集合コマンド説明パラメーター結果

ZADD

並べ替えられたセットに 1 つ以上のメンバーを追加するか、すでに存在する場合はそのスコアを更新します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.SCORE/"CamelRedis.Score" (Double)

ブール値

ZRANGE

並べ替えられたセット内のメンバーの範囲をインデックスで返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"Long)、RedisConstants.END/"CamelRedis.End" (Long)、RedisConstants.WITHSCORE/"CamelRedis.WithScore" (Boolean)

オブジェクト

ZREM

ソート済みセットから 1 つ以上のメンバーを削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ブール値

ZINCRBY

ソート済みセットのメンバーのスコアをインクリメントします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.INCREMENT/"CamelRedis.Increment" (Double)

double

ZRANK

並べ替えられたセット内のメンバーのインデックスを決定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

ZREVRANK

スコアが高いものから低いものに並べられた、並べ替えられたセット内のメンバーのインデックスを決定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

ZREVRANGE

並べ替えられたセット内のメンバーの範囲をインデックス別に返します。スコアは高いものから低いものへと並べられます。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"Long)、RedisConstants.END/"CamelRedis.End" (Long)、RedisConstants.WITHSCORE/"CamelRedis.WithScore" (Boolean)

オブジェクト

ZCARD

ソート済みセットのメンバー数を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

ZCOUNT

指定された値内のスコアを持つ並べ替えられたセットのメンバーをカウントします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.MIN/"CamelRedis.Min" (Double)、RedisConstants.MAX/"CamelRedis.Max" (Double)

ロング

ZRANGEBYSCORE

ソートされたセット内のメンバーの範囲をスコア別に返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.MIN/"CamelRedis.Min" (Double)、RedisConstants.MAX/"CamelRedis.Max" (Double)

Set<Object>

ZREVRANGEBYSCORE

スコアが高いものから低いものへと並べられたスコアで、ソートされたセット内のメンバーの範囲を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.MIN/"CamelRedis.Min" (Double)、RedisConstants.MAX/"CamelRedis.Max" (Double)

Set<Object>

ZREMRANGEBYRANK

指定されたインデックス内の並べ替えられたセットのすべてのメンバーを削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"(Long)、RedisConstants.END/"CamelRedis.End" (Long)

Void

ZREMRANGEBYSCORE

指定されたスコア内の並べ替えられたセットのすべてのメンバーを削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"(Long)、RedisConstants.END/"CamelRedis.End" (Long)

Void

ZUNIONSTORE

複数のソート済みセットを追加し、結果のソート済みセットを新しいキーに保存します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

Void

ZINTERSTORE

複数の並べ替えられたセットを交差させ、結果の並べ替えられたセットを新しいキーに格納します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.KEYS/"CamelRedis.Keys" (String)、RedisConstants.DESTINATION/"CamelRedis.Destination" (String)

Void

Expand
文字列コマンド説明パラメーター結果

SET

キーの文字列値を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

Void

GET

キーの値を取得する

RedisConstants.KEY/"CamelRedis.Key" (String)

オブジェクト

STRLEN

キーに格納されている値の長さを取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

APPEND

キーに値を追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (String)

Integer

SETBIT

キーに格納されている文字列値のオフセットのビットを設定またはクリアします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.OFFSET/"CamelRedis.Offset" (Long)、RedisConstants.VALUE/"CamelRedis.Value" (Boolean)

Void

GETBIT

キーに格納されている文字列値のオフセットのビット値を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.OFFSET/"CamelRedis.Offset" (Long)

ブール値

SETRANGE

指定されたオフセットから始まるキーの文字列の一部を上書きします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.OFFSET/"CamelRedis.Offset" (Long)

Void

GETRANGE

キーに格納されている文字列の部分文字列を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.START/"CamelRedis.Start"(Long)、RedisConstants.END/"CamelRedis.End" (Long)

文字列

SETNX

キーが存在しない場合にのみ、キーの値を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ブール値

SETEX

キーの値と有効期限を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)、SECONDS

Void

DECRBY

指定された数だけキーの整数値を減らします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Long)

ロング

DECR

キーの整数値を 1 減らします。

RedisConstants.KEY/"CamelRedis.Key" (String),

ロング

INCRBY

指定された量だけキーの整数値を増やします。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Long)

ロング

INCR

キーの整数値を 1 ずつ増やします。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

MGET

指定されたすべてのキーの値を取得します。

RedisConstants.FIELDS/"CamelRedis.Filds" (Collection<String>)

List<Object>

MSET

複数のキーを複数の値に設定します。

RedisConstants.VALUES/"CamelRedis.Values" (Map<String, Object>)

Void

MSETNX

キーが存在しない場合にのみ、複数のキーを複数の値に設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

Void

GETSET

キーの文字列値を設定し、古い値を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

オブジェクト

Expand
キーコマンド説明パラメーター結果

EXISTS

キーが存在するかどうかを判断します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ブール値

DEL

キーを削除します。

RedisConstants.KEYS/"CamelRedis.Keys" (String)

Void

TYPE

キーに格納されている型を決定します。

RedisConstants.KEY/"CamelRedis.Key" (String)

DataType

KEYS

指定されたパターンに一致するすべてのキーを見つけます。

RedisConstants.PATERN/"CamelRedis.Pattern" (String)

Collection<String>

RANDOMKEY

キースペースからランダムなキーを返します。

RedisConstants.PATERN/"CamelRedis.Pattern" (String)、RedisConstants.VALUE/"CamelRedis.Value" (String)

文字列

RENAME

キーの名前を変更します。

RedisConstants.KEY/"CamelRedis.Key" (String)

Void

RENAMENX

新しいキーが存在しない場合にのみ、キーの名前を変更します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (String)

ブール値

EXPIRE

キーの存続時間を秒単位で設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)

ブール値

SORT

リスト、セット、またはソートされたセット内の要素をソートします。

RedisConstants.KEY/"CamelRedis.Key" (String)

List<Object>

PERSIST

キーから有効期限を削除します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ブール値

EXPIREAT

キーの有効期限を UNIX タイムスタンプとして設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMESTAMP/"CamelRedis.Timestamp" (Long)

ブール値

PEXPIRE

キーの存続時間をミリ秒単位で設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMEOUT/"CamelRedis.Timeout" (Long)

ブール値

PEXPIREAT

ミリ秒単位で指定された UNIX タイムスタンプとしてキーの有効期限を設定します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.TIMESTAMP/"CamelRedis.Timestamp" (Long)

ブール値

TTL

キーの存続時間を取得します。

RedisConstants.KEY/"CamelRedis.Key" (String)

ロング

MOVE

キーを別のデータベースに移動します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.DB/"CamelRedis.Db" (Integer)

ブール値

Expand
Geo コマンド説明パラメーター結果

GEOADD

指定された地理空間項目 (緯度、経度、名前) を指定されたキーに追加します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.LATITUDE/"CamelRedis.Latitude" (Double)、RedisConstants.LONGITUDE/"CamelRedis.Longitude" (Double)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

ロング

GEODIST

指定されたキーの地理空間インデックス内にある 2 つのメンバー間の距離を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUES/"CamelRedis.Values" (Object[])

Distance

GEOHASH

指定されたキーの地理空間インデックス内にある要素の位置を表す有効な Geohash 文字列を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

List<String>

GEOPOS

指定されたキーの地理空間インデックス内にある要素の位置 (経度、緯度) を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)

List<Point>

GEORADIUS

指定されたキーの地理空間インデックス内にある、中心位置と中心からの最大距離 (半径) によって指定される境界内の要素を返します。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.LATITUDE/"CamelRedis.Latitude" (Double)、RedisConstants.LONGITUDE/"CamelRedis.Longitude" (Double)、RedisConstants.RADIUS/"CamelRedis.Radius" (Double)、RedisConstants.COUNT/"CamelRedis.Count" (Integer)

GeoResults

GEORADIUSBYMEMBER

このコマンドは GEORADIUS とまったく同じですが、唯一の違いは、クエリーするエリアの中心として経度と緯度の値を取得する代わりに、指定されたキーの地理空間インデックス内にすでに存在するメンバーの名前を取得することです。

RedisConstants.KEY/"CamelRedis.Key" (String)、RedisConstants.VALUE/"CamelRedis.Value" (Object)、RedisConstants.RADIUS/"CamelRedis.Radius" (Double)、RedisConstants.COUNT/"CamelRedis.Count" (Integer)

GeoResults

Expand
その他のコマンド説明パラメーター結果

MULTI

トランザクションブロックの開始をマークします。

none

Void

DISCARD

MULTI の後に発行されたすべてのコマンドを破棄します。

none

Void

EXEC

MULTI の後に発行されたすべてのコマンドを実行します。

none

Void

WATCH

指定されたキーを監視して、MULTI/EXEC ブロックの実行を決定します。

RedisConstants.KEYS/"CamelRedis.Keys" (String)

Void

UNWATCH

監視されているすべてのキーを忘れます。

none

Void

ECHO

指定された文字列をエコーします。

RedisConstants.VALUE/"CamelRedis.Value" (String)

文字列

PING

サーバーに ping を実行します。

none

文字列

QUIT

接続を閉じます。

none

Void

PUBLISH

チャンネルにメッセージを投稿します。

RedisConstants.CHANNEL/"CamelRedis.Channel" (String)、RedisConstants.MESSAGE/"CamelRedis.Message" (Object)

Void

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat