インターフェース RedisCacheWriter
- すべてのスーパーインターフェース:
CacheStatisticsProvider
RedisCacheWriter は、キャッシュに使用される Redis コマンド (SET, SETNX, GET, EXPIRE,...) への低レベルのアクセスを提供します。RedisCacheWriter は複数のキャッシュ実装で共有でき、Redis との間でバイナリデータの読み取り / 書き込みを行います。実装では、設定されている可能性のあるキャッシュロックフラグが考慮されます。
デフォルトの RedisCacheWriter 実装は、パフォーマンス動作を調整するために BatchStrategy でカスタマイズできます。
- 導入:
- 2.0
- 作成者:
- Christoph Strobl, Mark Paluch, John Blum
ネストされたクラスの概要
ネストされたクラス修飾子と型インターフェース説明static interfaceキャッシュロックオプションを構成できるインターフェース。static interfaceキャッシュロックを構成できるインターフェース。static interfaceRedisCacheWriterを構成できるインターフェース。static interfaceキャッシュkeyおよびvalueから存続時間を計算する関数。方法の概要
修飾子と型メソッド説明default void非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。void指定されたパターンに従ってすべてのキーを削除します。voidclearStatistics(StringSE name) このキャッシュのすべての統計カウンターとゲージをリセットします。static RedisCacheWritercreate(RedisConnectionFactory connectionFactory, ConsumerSE<RedisCacheWriter.RedisCacheWriterConfigurer> configurerConsumer) 新しいRedisCacheWriterを作成し、RedisCacheWriter.RedisCacheWriterConfigurerを通じて構成します。void指定されたキーを Redis から削除します。default booleanevictIfPresent(StringSE name, byte[] key) 指定されたキーが存在する場合は、Redis からそのキーを削除します。これにより、キーは後続の検索ではすぐに非表示になるものと想定されます。byte @Nullable[]指定されたキーに格納されている Redis からバイナリ値表現を取得します。default byte @Nullable[]get(StringSE name, byte[] key, @Nullable DurationSE ttl) 指定されたキーに格納されている Redis からバイナリ値表現を取得し、指定されたTTL expirationSE をキャッシュエントリに設定します。default byte[]get(StringSE name, byte[] key, SupplierSE<byte[]> valueLoader, @Nullable DurationSE ttl, boolean timeToIdleEnabled) 指定されたキーに格納されている Redis からバイナリ値表現を取得し、キャッシュエントリに指定されたTTL expirationSE を設定し、必要に応じてvalueLoaderから値を取得します。default booleaninvalidate(StringSE name, byte[] pattern) 指定されたパターンに続くすべてのキーを削除します。すべてのエントリが後続の検索ですぐに非表示になることが想定されます。static RedisCacheWriterlockingRedisCacheWriter(RedisConnectionFactory connectionFactory) BatchStrategies.keys()を使用して、ロック動作を備えた新しいRedisCacheWriterを作成します。static RedisCacheWriterlockingRedisCacheWriter(RedisConnectionFactory connectionFactory, DurationSE sleepTime, RedisCacheWriter.TtlFunction lockTtlFunction, BatchStrategy batchStrategy) ロック動作を備えた新しいRedisCacheWriterを作成します。static RedisCacheWriterlockingRedisCacheWriter(RedisConnectionFactory connectionFactory, BatchStrategy batchStrategy) ロック動作を備えた新しいRedisCacheWriterを作成します。static RedisCacheWriternonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory) BatchStrategies.keys()を使用して、動作をロックせずに新しいRedisCacheWriterを作成します。static RedisCacheWriternonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory, BatchStrategy batchStrategy) ロック動作なしで新しいRedisCacheWriterを作成します。voidput(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl) 指定されたキーと値のペアを Redis に書き込み、有効期限が定義されている場合はそれを設定します。byte @Nullable[]putIfAbsent(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl) キーがまだ存在しない場合は、指定された値を Redis に書き込みます。default void非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。4.0 以降、evict(String, byte[])を推奨default CompletableFutureSE<byte[]> CompletableFutureSE<byte[]> retrieve(StringSE name, byte[] key, @Nullable DurationSE ttl) store(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl) 指定されたキーと値のペアを Redis に非同期的に保存し、定義されている場合は有効期限を設定します。default boolean非同期retrieve(String, byte[])およびretrieve(String, byte[], Duration)キャッシュ操作が実装でサポートされているかどうかを決定します。withStatisticsCollector(CacheStatisticsCollector cacheStatisticsCollector) 指定されたCacheStatisticsCollectorを使用してRedisCacheWriterを取得し、メトリクスを収集します。インターフェース CacheStatisticsProvider から継承されたメソッド
getCacheStatistics
メソッドの詳細
create
static RedisCacheWriter create(RedisConnectionFactory connectionFactory, ConsumerSE<RedisCacheWriter.RedisCacheWriterConfigurer> configurerConsumer) 新しいRedisCacheWriterを作成し、RedisCacheWriter.RedisCacheWriterConfigurerを介して設定します。キャッシュライターのデフォルトでは、BatchStrategies.keys()を使用してキャッシュをロックしません。- パラメーター:
connectionFactory- 使用する接続ファクトリ。configurerConsumer-RedisCacheWriter.RedisCacheWriterConfigurerを構成する構成関数。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。- 導入:
- 4.0
nonLockingRedisCacheWriter
BatchStrategies.keys()を使用して、動作をロックせずに新しいRedisCacheWriterを作成します。- パラメーター:
connectionFactory- null であってはなりません。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。
nonLockingRedisCacheWriter
static RedisCacheWriter nonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory, BatchStrategy batchStrategy) ロック動作なしで新しいRedisCacheWriterを作成します。- パラメーター:
connectionFactory- null であってはなりません。batchStrategy- null であってはなりません。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。- 導入:
- 2.6
lockingRedisCacheWriter
BatchStrategies.keys()を使用して、ロック動作を備えた新しいRedisCacheWriterを作成します。- パラメーター:
connectionFactory- null であってはなりません。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。
lockingRedisCacheWriter
static RedisCacheWriter lockingRedisCacheWriter(RedisConnectionFactory connectionFactory, BatchStrategy batchStrategy) ロック動作を備えた新しいRedisCacheWriterを作成します。- パラメーター:
connectionFactory- null であってはなりません。batchStrategy- null であってはなりません。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。- 導入:
- 2.6
lockingRedisCacheWriter
static RedisCacheWriter lockingRedisCacheWriter(RedisConnectionFactory connectionFactory, DurationSE sleepTime, RedisCacheWriter.TtlFunction lockTtlFunction, BatchStrategy batchStrategy) ロック動作を備えた新しいRedisCacheWriterを作成します。- パラメーター:
connectionFactory- null であってはなりません。sleepTime- ロックアクセス試行間のスリープ時間は null であってはなりません。lockTtlFunction- ロック TTL を計算する TTL 関数。この関数は、コンテキストキーと値 (クリーンアップ時のキャッシュ名や書き込みリクエスト時の実際のキー / 値など) を使用して呼び出されます。null であってはなりません。batchStrategy- null であってはなりません。- 戻り値:
DefaultRedisCacheWriterの新しいインスタンス。- 導入:
- 3.2
get
指定されたキーに格納されている Redis からバイナリ値表現を取得します。- パラメーター:
name- null であってはなりません。key- null であってはなりません。- 戻り値:
- キーが存在しない場合は null。
- 関連事項:
get
指定されたキーに格納されている Redis からバイナリ値表現を取得し、指定されたTTL expirationSE をキャッシュエントリに設定します。- パラメーター:
name- null であってはなりません。key- null であってはなりません。ttl-DurationSE は、キャッシュエントリの有効期限タイムアウトを指定します。- 戻り値:
- キーが存在しないか期限切れの場合は null。
get
default byte[] get(StringSE name, byte[] key, SupplierSE<byte[]> valueLoader, @Nullable DurationSE ttl, boolean timeToIdleEnabled) 指定されたキーに格納されている Redis からバイナリ値表現を取得し、キャッシュエントリに指定されたTTL expirationSE を設定し、必要に応じてvalueLoaderから値を取得します。可能であれば(ロック用に構成されている場合)、実装では、同じキーへの同時アクセスの場合に指定された
valueLoaderが 1 回だけ呼び出されるように、ロード操作が同期されるようにする必要があります。- パラメーター:
name- null であってはなりません。key- null であってはなりません。valueLoader- キャッシュ検索が成功しなかった場合に値を作成する値ローダー。ttl-DurationSE は、キャッシュエントリの有効期限タイムアウトを指定します。timeToIdleEnabled- 値を取得するときにアイドル時間を有効にするには true にします。- 導入:
- 3.4
supportsAsyncRetrieve
default boolean supportsAsyncRetrieve()非同期retrieve(String, byte[])およびretrieve(String, byte[], Duration)キャッシュ操作が実装でサポートされているかどうかを決定します。取得操作をサポートできるかどうかの主な要素は、主に実行時に使用される Redis ドライバーによって決まります。
デフォルトでは false を返します。これには、
RedisCache.retrieve(Object)およびRedisCache.retrieve(Object, Supplier)がUnsupportedOperationExceptionSE をスローする効果があります。- 戻り値:
- 非同期取得操作が実装でサポートされている場合は true。
- 導入:
- 3.2
retrieve
- パラメーター:
name-StringSE とRedisCacheの名前。key-byte[] keyはRedisCache内のvalueSE にマップされます。- 戻り値:
RedisCacheが指定されたbyte[] keyをマップするvalueSE。- 導入:
- 3.2
- 関連事項:
retrieve
RedisCacheが指定されたbyte[] keyをマップするvalueSE を非同期的に取得し、キャッシュエントリにTTL expirationSE を設定します。この操作はノンブロッキングです。
- パラメーター:
name-StringSE とRedisCacheの名前。key-byte[] keyはRedisCache内のvalueSE にマップされます。ttl-DurationSE は、キャッシュエントリの有効期限タイムアウトを指定します。- 戻り値:
RedisCacheが指定されたbyte[] keyをマップするvalueSE。- 導入:
- 3.2
put
指定されたキーと値のペアを Redis に書き込み、有効期限が定義されている場合はそれを設定します。- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。value- キーに保存された値。null にすることはできません。ttl- オプションの有効期限。null にすることもできます。
store
CompletableFutureSE<VoidSE> store(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl) 指定されたキーと値のペアを Redis に非同期的に保存し、定義されている場合は有効期限を設定します。この操作はノンブロッキングです。
- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。value- キーに保存された値。null にすることはできません。ttl- オプションの有効期限。null にすることもできます。- 導入:
- 3.2
putIfAbsent
キーがまだ存在しない場合は、指定された値を Redis に書き込みます。- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。value- キーに保存された値。null にすることはできません。ttl- オプションの有効期限。null にすることもできます。- 戻り値:
- 値が書き込まれている場合は null、キーがすでに存在する場合はキーに保存されている値。
remove
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。4.0 以降、evict(String, byte[])を推奨指定されたキーを Redis から削除します。実際の削除は非同期または遅延方式で実行される可能性があり、後続の検索ではエントリが引き続き表示される可能性があります。
- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。
evict
指定されたキーを Redis から削除します。実際の削除は非同期または遅延方式で実行される可能性があり、後続の検索ではエントリが引き続き表示される可能性があります。
- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。- 導入:
- 4.0
evictIfPresent
指定されたキーが存在する場合は、Redis からそのキーを削除します。これにより、キーは後続の検索ではすぐに非表示になるものと想定されます。- パラメーター:
name- キャッシュ名は null にできません。key- キャッシュエントリのキー。null にすることはできません。- 戻り値:
- キャッシュに以前このキーのマッピングがあることが分かっている場合は
true、そうでない場合 (または以前の存在を判断できなかった場合) はfalseです。 - 導入:
- 4.0
clean
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。4.0 以降、clear(String, byte[])を推奨指定されたパターンに従ってすべてのキーを削除します。実際のクリアは非同期または遅延方式で実行される可能性があり、後続のルックアップではエントリが引き続き表示される可能性があります。
- パラメーター:
name- キャッシュ名は null にできません。pattern- 削除するキーのパターン。null にすることはできません。
clear
指定されたパターンに従ってすべてのキーを削除します。実際のクリアは非同期または遅延方式で実行される可能性があり、後続のルックアップではエントリが引き続き表示される可能性があります。
- パラメーター:
name- キャッシュ名は null にできません。pattern- 削除するキーのパターン。null にすることはできません。- 導入:
- 4.0
invalidate
指定されたパターンに続くすべてのキーを削除します。すべてのエントリが後続の検索ですぐに非表示になることが想定されます。- パラメーター:
name- キャッシュ名は null にできません。pattern- 削除するキーのパターン。null にすることはできません。- 戻り値:
- キャッシュに以前からマッピングがあることがわかっている場合は
true、マッピングがなかった (またはエントリが以前から存在していたかどうか判断できなかった) 場合はfalseです。
clearStatistics
withStatisticsCollector
指定されたCacheStatisticsCollectorを使用してRedisCacheWriterを取得し、メトリクスを収集します。- パラメーター:
cacheStatisticsCollector- null であってはなりません。- 戻り値:
RedisCacheWriterの新しいインスタンス。
clear(String, byte[])を推奨