インターフェース 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
  • メソッドの詳細

    • nonLockingRedisCacheWriter

      static RedisCacheWriter nonLockingRedisCacheWriter(RedisConnectionFactory connectionFactory)
      ロック動作なしで新しい 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)
      ロック動作を備えた新しい 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

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

      @Nullable default byte[] 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 が指定された key をマップする valueSE を非同期的に取得します。

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

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

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

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

      パラメーター:
      name - StringSERedisCache の名前。
      key - key は RedisCache 内の valueSE にマップされます。
      ttl - DurationSE は、キャッシュエントリの有効期限タイムアウトを指定します。
      戻り値:
      RedisCache が指定された 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

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

      void remove(StringSE name, byte[] key)
      指定されたキーを Redis から削除します。
      パラメーター:
      name - キャッシュ名は null にできません。
      key - キャッシュエントリのキー。null にすることはできません。
    • clean

      void clean(StringSE name, byte[] pattern)
      指定されたパターンに従ってすべてのキーを削除します。
      パラメーター:
      name - キャッシュ名は null にできません。
      pattern - 削除するキーのパターン。null にすることはできません。
    • clearStatistics

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

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