インターフェース RedisCacheWriter

すべてのスーパーインターフェース:
CacheStatisticsProvider

public interface RedisCacheWriter extends CacheStatisticsProvider
RedisCacheWriter は、キャッシュに使用される Redis コマンド (SET, SETNX, GET, EXPIRE,...) への低レベルのアクセスを提供します。

RedisCacheWriter は複数のキャッシュ実装で共有でき、Redis との間でバイナリデータの読み取り / 書き込みを行います。実装では、設定されている可能性のあるキャッシュロックフラグが考慮されます。

デフォルトの RedisCacheWriter 実装は、パフォーマンス動作を調整するために BatchStrategy でカスタマイズできます。

導入:
2.0
作成者:
Christoph Strobl, Mark Paluch, John Blum
  • メソッドの詳細

    • create

      static RedisCacheWriter create(RedisConnectionFactory connectionFactory, ConsumerSE<RedisCacheWriter.RedisCacheWriterConfigurer> configurerConsumer)
      新しい RedisCacheWriter を作成し、RedisCacheWriter.RedisCacheWriterConfigurer を介して設定します。キャッシュライターのデフォルトでは、BatchStrategies.keys() を使用してキャッシュをロックしません。
      パラメーター:
      connectionFactory - 使用する接続ファクトリ。
      configurerConsumer - RedisCacheWriter.RedisCacheWriterConfigurer を構成する構成関数。
      戻り値:
      DefaultRedisCacheWriter の新しいインスタンス。
      導入:
      4.0
    • nonLockingRedisCacheWriter

      static RedisCacheWriter nonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory)
      BatchStrategies.keys() を使用して、動作をロックせずに新しい RedisCacheWriter を作成します。
      パラメーター:
      connectionFactory - null であってはなりません。
      戻り値:
      DefaultRedisCacheWriter の新しいインスタンス。
    • nonLockingRedisCacheWriter

      static RedisCacheWriter nonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory, BatchStrategy batchStrategy)
      ロック動作なしで新しい RedisCacheWriter を作成します。
      パラメーター:
      connectionFactory - null であってはなりません。
      batchStrategy - null であってはなりません。
      戻り値:
      DefaultRedisCacheWriter の新しいインスタンス。
      導入:
      2.6
    • lockingRedisCacheWriter

      static RedisCacheWriter lockingRedisCacheWriter(RedisConnectionFactory connectionFactory)
      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

      byte @Nullable [] get(StringSE name, byte[] key)
      指定されたキーに格納されている Redis からバイナリ値表現を取得します。
      パラメーター:
      name - null であってはなりません。
      key - null であってはなりません。
      戻り値:
      キーが存在しない場合は null。
      関連事項:
    • get

      default byte @Nullable [] get(StringSE name, byte[] key, @Nullable DurationSE ttl)
      指定されたキーに格納されている 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

      default CompletableFutureSE<byte[]> retrieve(StringSE name, byte[] key)
      RedisCache が指定された byte[] key をマップする valueSE を非同期的に取得します。

      この操作はノンブロッキングです。

      パラメーター:
      name - StringSERedisCache の名前。
      key - byte[] key は RedisCache 内の valueSE にマップされます。
      戻り値:
      RedisCache が指定された byte[] key をマップする valueSE
      導入:
      3.2
      関連事項:
    • retrieve

      CompletableFutureSE<byte[]> retrieve(StringSE name, byte[] key, @Nullable DurationSE ttl)
      RedisCache が指定された byte[] key をマップする valueSE を非同期的に取得し、キャッシュエントリに TTL expirationSE を設定します。

      この操作はノンブロッキングです。

      パラメーター:
      name - StringSERedisCache の名前。
      key - byte[] key は RedisCache 内の valueSE にマップされます。
      ttl - DurationSE は、キャッシュエントリの有効期限タイムアウトを指定します。
      戻り値:
      RedisCache が指定された byte[] key をマップする valueSE
      導入:
      3.2
    • put

      void put(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl)
      指定されたキーと値のペアを 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

      byte @Nullable [] putIfAbsent(StringSE name, byte[] key, byte[] value, @Nullable DurationSE ttl)
      キーがまだ存在しない場合は、指定された値を Redis に書き込みます。
      パラメーター:
      name - キャッシュ名は null にできません。
      key - キャッシュエントリのキー。null にすることはできません。
      value - キーに保存された値。null にすることはできません。
      ttl - オプションの有効期限。null にすることもできます。
      戻り値:
      値が書き込まれている場合は null、キーがすでに存在する場合はキーに保存されている値。
    • remove

      @DeprecatedSE(since="4.0", forRemoval=true) default void remove(StringSE name, byte[] key)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      4.0 以降、evict(String, byte[]) を推奨
      指定されたキーを Redis から削除します。

      実際の削除は非同期または遅延方式で実行される可能性があり、後続の検索ではエントリが引き続き表示される可能性があります。

      パラメーター:
      name - キャッシュ名は null にできません。
      key - キャッシュエントリのキー。null にすることはできません。
    • evict

      void evict(StringSE name, byte[] key)
      指定されたキーを Redis から削除します。

      実際の削除は非同期または遅延方式で実行される可能性があり、後続の検索ではエントリが引き続き表示される可能性があります。

      パラメーター:
      name - キャッシュ名は null にできません。
      key - キャッシュエントリのキー。null にすることはできません。
      導入:
      4.0
    • evictIfPresent

      default boolean evictIfPresent(StringSE name, byte[] key)
      指定されたキーが存在する場合は、Redis からそのキーを削除します。これにより、キーは後続の検索ではすぐに非表示になるものと想定されます。
      パラメーター:
      name - キャッシュ名は null にできません。
      key - キャッシュエントリのキー。null にすることはできません。
      戻り値:
      キャッシュに以前このキーのマッピングがあることが分かっている場合は true、そうでない場合 (または以前の存在を判断できなかった場合) は false です。
      導入:
      4.0
    • clean

      @DeprecatedSE(since="4.0", forRemoval=true) default void clean(StringSE name, byte[] pattern)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      4.0 以降、clear(String, byte[]) を推奨
      指定されたパターンに従ってすべてのキーを削除します。

      実際のクリアは非同期または遅延方式で実行される可能性があり、後続のルックアップではエントリが引き続き表示される可能性があります。

      パラメーター:
      name - キャッシュ名は null にできません。
      pattern - 削除するキーのパターン。null にすることはできません。
    • clear

      void clear(StringSE name, byte[] pattern)
      指定されたパターンに従ってすべてのキーを削除します。

      実際のクリアは非同期または遅延方式で実行される可能性があり、後続のルックアップではエントリが引き続き表示される可能性があります。

      パラメーター:
      name - キャッシュ名は null にできません。
      pattern - 削除するキーのパターン。null にすることはできません。
      導入:
      4.0
    • invalidate

      default boolean invalidate(StringSE name, byte[] pattern)
      指定されたパターンに続くすべてのキーを削除します。すべてのエントリが後続の検索ですぐに非表示になることが想定されます。
      パラメーター:
      name - キャッシュ名は null にできません。
      pattern - 削除するキーのパターン。null にすることはできません。
      戻り値:
      キャッシュに以前からマッピングがあることがわかっている場合は true、マッピングがなかった (またはエントリが以前から存在していたかどうか判断できなかった) 場合は false です。
    • clearStatistics

      void clearStatistics(StringSE name)
      このキャッシュのすべての統計カウンターとゲージをリセットします。
      導入:
      2.4
    • withStatisticsCollector

      RedisCacheWriter withStatisticsCollector(CacheStatisticsCollector cacheStatisticsCollector)
      指定された CacheStatisticsCollector を使用して RedisCacheWriter を取得し、メトリクスを収集します。
      パラメーター:
      cacheStatisticsCollector - null であってはなりません。
      戻り値:
      RedisCacheWriter の新しいインスタンス。